diff --git a/build/contracts/AttendeeRole.json b/build/contracts/AttendeeRole.json index 9e577bd..aa1412c 100644 --- a/build/contracts/AttendeeRole.json +++ b/build/contracts/AttendeeRole.json @@ -1,18 +1,6 @@ { "contractName": "AttendeeRole", "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialAttendee", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -40,7 +28,6 @@ "type": "event" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -56,12 +43,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -71,110 +56,116 @@ ], "name": "addAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAttendee\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Implements a access control for an Attendee role, which will registering ant attending hackathons/contests.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":\"AttendeeRole\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0x6d8a1612736c806680064dbb20da3b25b19fb68b0ea157764abe8c4d6c2c1014\",\"urls\":[\"bzz-raw://07c3ea494972a5d0bc34e75068125e2d82f824b973d7c42edaec5fa361e318e3\",\"dweb:/ipfs/QmaH1BkrDJEDkd3uEyTT42h39cGBrGrMCXw1YdaqaFQUsv\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Implements a access control for an Attendee role, which will registering ant attending hackathons/contests.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":\"AttendeeRole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0xa51bbee9262940c417d864967fc5b3c9e90fdb20848ec3afc04c30e1d2bf3e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://926e4555fa2fcf567df76509680bdf5600edc33335f263f11c46a297951d67dc\",\"dweb:/ipfs/QmPkhvmATnQ9KkiGxdohwdWET3RZVfvhDQek3M9ZzZxGtU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\npragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\n/**\n @notice Implements a access control for an Attendee role,\n which will registering ant attending hackathons/contests.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\ncontract AttendeeRole {\n using Roles for Roles.Role;\n\n event AttendeeAdded(address indexed account);\n event AttendeeRemoved(address indexed account);\n\n Roles.Role private _attendees;\n\n constructor(address initialAttendee) internal {\n require(initialAttendee != address(0), \"Invalid zero address\");\n _addAttendee(initialAttendee);\n }\n\n modifier onlyAttendee() {\n require(isAttendee(msg.sender), \"AttendeeRole: caller does not have Attendee Role.\");\n _;\n }\n\n function isAttendee(address account) public view returns (bool) {\n return _attendees.has(account);\n }\n\n function addAttendee(address account) public onlyAttendee {\n _addAttendee(account);\n }\n\n function renounceAttendee() public {\n _removeAttendee(msg.sender);\n }\n\n function _addAttendee(address account) internal {\n _attendees.add(account);\n emit AttendeeAdded(account);\n }\n\n function _removeAttendee(address account) internal {\n _attendees.remove(account);\n emit AttendeeRemoved(account);\n }\n}\n", + "source": "// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\n// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"./Roles.sol\";\n\n/**\n @notice Implements a access control for an Attendee role,\n which will registering ant attending hackathons/contests.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\nabstract contract AttendeeRole {\n using Roles for Roles.Role;\n\n event AttendeeAdded(address indexed account);\n event AttendeeRemoved(address indexed account);\n\n Roles.Role private _attendees;\n\n constructor(address initialAttendee) {\n require(initialAttendee != address(0), \"Invalid zero address\");\n _addAttendee(initialAttendee);\n }\n\n modifier onlyAttendee() {\n require(isAttendee(msg.sender), \"AttendeeRole: caller does not have Attendee Role.\");\n _;\n }\n\n function isAttendee(address account) public view returns (bool) {\n return _attendees.has(account);\n }\n\n function addAttendee(address account) virtual public onlyAttendee {\n _addAttendee(account);\n }\n\n function renounceAttendee() virtual public {\n _removeAttendee(msg.sender);\n }\n\n function _addAttendee(address account) virtual internal {\n _attendees.add(account);\n emit AttendeeAdded(account);\n }\n\n function _removeAttendee(address account) virtual internal {\n _attendees.remove(account);\n emit AttendeeRemoved(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "exportedSymbols": { - "AttendeeRole": [3017] + "AttendeeRole": [3142], + "Roles": [3618] }, - "id": 3018, + "id": 3143, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2905, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3028, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:19" + "src": "173:31:19" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 2906, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3029, "nodeType": "ImportDirective", - "scope": 3018, - "sourceUnit": 4083, - "src": "1310:58:19", + "scope": 3143, + "sourceUnit": 3619, + "src": "206:21:19", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for an Attendee role,\nwhich will registering ant attending hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3030, + "nodeType": "StructuredDocumentation", + "src": "229:247:19", + "text": "@notice Implements a access control for an Attendee role,\nwhich will registering ant attending hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": true, - "id": 3017, - "linearizedBaseContracts": [3017], + "id": 3142, + "linearizedBaseContracts": [3142], "name": "AttendeeRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2909, + "id": 3033, "libraryName": { - "contractScope": null, - "id": 2907, + "id": 3031, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1652:5:19", + "referencedDeclaration": 3618, + "src": "520:5:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1646:27:19", + "src": "514:27:19", "typeName": { - "contractScope": null, - "id": 2908, + "id": 3032, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1662:10:19", + "referencedDeclaration": 3540, + "src": "530:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 2913, + "id": 3037, "name": "AttendeeAdded", "nodeType": "EventDefinition", "parameters": { - "id": 2912, + "id": 3036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2911, + "id": 3035, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2913, - "src": "1699:23:19", + "scope": 3037, + "src": "567:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -182,42 +173,41 @@ "typeString": "address" }, "typeName": { - "id": 2910, + "id": 3034, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1699:7:19", + "src": "567:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1698:25:19" + "src": "566:25:19" }, - "src": "1679:45:19" + "src": "547:45:19" }, { "anonymous": false, - "documentation": null, - "id": 2917, + "id": 3041, "name": "AttendeeRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 2916, + "id": 3040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2915, + "id": 3039, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2917, - "src": "1751:23:19", + "scope": 3041, + "src": "619:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -225,81 +215,76 @@ "typeString": "address" }, "typeName": { - "id": 2914, + "id": 3038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1751:7:19", + "src": "619:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1750:25:19" + "src": "618:25:19" }, - "src": "1729:47:19" + "src": "597:47:19" }, { "constant": false, - "id": 2919, + "id": 3043, + "mutability": "mutable", "name": "_attendees", "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "1782:29:19", + "scope": 3142, + "src": "650:29:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 2918, + "id": 3042, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1782:10:19", + "referencedDeclaration": 3540, + "src": "650:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 2937, + "id": 3062, "nodeType": "Block", - "src": "1864:118:19", + "src": "723:118:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2929, + "id": 3054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2925, + "id": 3049, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "1882:15:19", + "referencedDeclaration": 3045, + "src": "741:15:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -308,20 +293,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2927, + "id": 3052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1909:1:19", - "subdenomination": null, + "src": "768:1:19", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -336,20 +318,26 @@ "typeString": "int_const 0" } ], - "id": 2926, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1901:7:19", + "src": "760:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "760:7:19", + "typeDescriptions": {} + } }, - "id": 2928, + "id": 3053, "isConstant": false, "isLValue": false, "isPure": true, @@ -357,30 +345,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1901:10:19", + "src": "760:10:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1882:29:19", + "src": "741:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 2930, + "id": 3055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1913:22:19", - "subdenomination": null, + "src": "772:22:19", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -399,18 +386,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 2924, + "id": 3048, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1874:7:19", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "733:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2931, + "id": 3056, "isConstant": false, "isLValue": false, "isPure": false, @@ -418,28 +405,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1874:62:19", + "src": "733:62:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2932, + "id": 3057, "nodeType": "ExpressionStatement", - "src": "1874:62:19" + "src": "733:62:19" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2934, + "id": 3059, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "1959:15:19", + "referencedDeclaration": 3045, + "src": "818:15:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -453,18 +439,18 @@ "typeString": "address" } ], - "id": 2933, + "id": 3058, "name": "_addAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "1946:12:19", + "referencedDeclaration": 3125, + "src": "805:12:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2935, + "id": 3060, "isConstant": false, "isLValue": false, "isPure": false, @@ -472,36 +458,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1946:29:19", + "src": "805:29:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2936, + "id": 3061, "nodeType": "ExpressionStatement", - "src": "1946:29:19" + "src": "805:29:19" } ] }, - "documentation": null, - "id": 2938, + "id": 3063, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2922, + "id": 3046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2921, + "id": 3045, + "mutability": "mutable", "name": "initialAttendee", "nodeType": "VariableDeclaration", - "scope": 2938, - "src": "1830:23:19", + "scope": 3063, + "src": "698:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -509,71 +496,65 @@ "typeString": "address" }, "typeName": { - "id": 2920, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1830:7:19", + "src": "698:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1829:25:19" + "src": "697:25:19" }, "returnParameters": { - "id": 2923, + "id": 3047, "nodeType": "ParameterList", "parameters": [], - "src": "1864:0:19" + "src": "723:0:19" }, - "scope": 3017, - "src": "1818:164:19", + "scope": 3142, + "src": "686:155:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2949, + "id": 3074, "nodeType": "Block", - "src": "2012:112:19", + "src": "871:112:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2942, + "id": 3067, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2041:3:19", + "referencedDeclaration": 4294967281, + "src": "900:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2943, + "id": 3068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2041:10:19", + "src": "900:10:19", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -587,18 +568,18 @@ "typeString": "address payable" } ], - "id": 2941, + "id": 3066, "name": "isAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2963, - "src": "2030:10:19", + "referencedDeclaration": 3088, + "src": "889:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 2944, + "id": 3069, "isConstant": false, "isLValue": false, "isPure": false, @@ -606,24 +587,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2030:22:19", + "src": "889:22:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e", - "id": 2945, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2054:51:19", - "subdenomination": null, + "src": "913:51:19", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b8ef6ca71c10a3a6b68153c6d6c8e26c32622e32f1332f5b2b2d3c4398fd3758", "typeString": "literal_string \"AttendeeRole: caller does not have Attendee Role.\"" @@ -642,18 +622,18 @@ "typeString": "literal_string \"AttendeeRole: caller does not have Attendee Role.\"" } ], - "id": 2940, + "id": 3065, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2022:7:19", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "881:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2946, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, @@ -661,54 +641,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2022:84:19", + "src": "881:84:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2947, + "id": 3072, "nodeType": "ExpressionStatement", - "src": "2022:84:19" + "src": "881:84:19" }, { - "id": 2948, + "id": 3073, "nodeType": "PlaceholderStatement", - "src": "2116:1:19" + "src": "975:1:19" } ] }, - "documentation": null, - "id": 2950, + "id": 3075, "name": "onlyAttendee", "nodeType": "ModifierDefinition", "parameters": { - "id": 2939, + "id": 3064, "nodeType": "ParameterList", "parameters": [], - "src": "2009:2:19" + "src": "868:2:19" }, - "src": "1988:136:19", + "src": "847:136:19", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2962, + "id": 3087, "nodeType": "Block", - "src": "2194:47:19", + "src": "1053:47:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2959, + "id": 3084, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "2226:7:19", + "referencedDeclaration": 3077, + "src": "1085:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -723,33 +702,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2957, + "id": 3082, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2211:10:19", + "referencedDeclaration": 3043, + "src": "1070:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 2958, + "id": 3083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2211:14:19", + "referencedDeclaration": 3617, + "src": "1070:14:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 2960, + "id": 3085, "isConstant": false, "isLValue": false, "isPure": false, @@ -757,37 +735,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2211:23:19", + "src": "1070:23:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2956, - "id": 2961, + "functionReturnParameters": 3081, + "id": 3086, "nodeType": "Return", - "src": "2204:30:19" + "src": "1063:30:19" } ] }, - "documentation": null, - "id": 2963, + "functionSelector": "6cad2590", + "id": 3088, "implemented": true, "kind": "function", "modifiers": [], "name": "isAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2953, + "id": 3078, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2952, + "id": 3077, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "2150:15:19", + "scope": 3088, + "src": "1009:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,33 +775,33 @@ "typeString": "address" }, "typeName": { - "id": 2951, + "id": 3076, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2150:7:19", + "src": "1009:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2149:17:19" + "src": "1008:17:19" }, "returnParameters": { - "id": 2956, + "id": 3081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2955, + "id": 3080, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "2188:4:19", + "scope": 3088, + "src": "1047:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -829,45 +809,42 @@ "typeString": "bool" }, "typeName": { - "id": 2954, + "id": 3079, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2188:4:19", + "src": "1047:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2187:6:19" + "src": "1046:6:19" }, - "scope": 3017, - "src": "2130:111:19", + "scope": 3142, + "src": "989:111:19", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2974, + "id": 3099, "nodeType": "Block", - "src": "2305:38:19", + "src": "1172:38:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2971, + "id": 3096, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2965, - "src": "2328:7:19", + "referencedDeclaration": 3090, + "src": "1195:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -881,18 +858,18 @@ "typeString": "address" } ], - "id": 2970, + "id": 3095, "name": "_addAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "2315:12:19", + "referencedDeclaration": 3125, + "src": "1182:12:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2972, + "id": 3097, "isConstant": false, "isLValue": false, "isPure": false, @@ -900,56 +877,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:21:19", + "src": "1182:21:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2973, + "id": 3098, "nodeType": "ExpressionStatement", - "src": "2315:21:19" + "src": "1182:21:19" } ] }, - "documentation": null, - "id": 2975, + "functionSelector": "10246254", + "id": 3100, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2968, + "id": 3093, "modifierName": { - "argumentTypes": null, - "id": 2967, + "id": 3092, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "2292:12:19", + "referencedDeclaration": 3075, + "src": "1159:12:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2292:12:19" + "src": "1159:12:19" } ], "name": "addAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2966, + "id": 3091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 3090, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2975, - "src": "2268:15:19", + "scope": 3100, + "src": "1127:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -957,68 +934,63 @@ "typeString": "address" }, "typeName": { - "id": 2964, + "id": 3089, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2268:7:19", + "src": "1127:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2267:17:19" + "src": "1126:17:19" }, "returnParameters": { - "id": 2969, + "id": 3094, "nodeType": "ParameterList", "parameters": [], - "src": "2305:0:19" + "src": "1172:0:19" }, - "scope": 3017, - "src": "2247:96:19", + "scope": 3142, + "src": "1106:104:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2983, + "id": 3108, "nodeType": "Block", - "src": "2384:44:19", + "src": "1259:44:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2979, + "id": 3104, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2410:3:19", + "referencedDeclaration": 4294967281, + "src": "1285:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2980, + "id": 3105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2410:10:19", + "src": "1285:10:19", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1032,18 +1004,18 @@ "typeString": "address payable" } ], - "id": 2978, + "id": 3103, "name": "_removeAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3016, - "src": "2394:15:19", + "referencedDeclaration": 3141, + "src": "1269:15:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2981, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, @@ -1051,61 +1023,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2394:27:19", + "src": "1269:27:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2982, + "id": 3107, "nodeType": "ExpressionStatement", - "src": "2394:27:19" + "src": "1269:27:19" } ] }, - "documentation": null, - "id": 2984, + "functionSelector": "fb1da543", + "id": 3109, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2976, + "id": 3101, "nodeType": "ParameterList", "parameters": [], - "src": "2374:2:19" + "src": "1241:2:19" }, "returnParameters": { - "id": 2977, + "id": 3102, "nodeType": "ParameterList", "parameters": [], - "src": "2384:0:19" + "src": "1259:0:19" }, - "scope": 3017, - "src": "2349:79:19", + "scope": 3142, + "src": "1216:87:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2999, + "id": 3124, "nodeType": "Block", - "src": "2482:77:19", + "src": "1365:77:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2992, + "id": 3117, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "2507:7:19", + "referencedDeclaration": 3111, + "src": "1390:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1120,33 +1091,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2989, + "id": 3114, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2492:10:19", + "referencedDeclaration": 3043, + "src": "1375:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 2991, + "id": 3116, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2492:14:19", + "referencedDeclaration": 3566, + "src": "1375:14:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 2993, + "id": 3118, "isConstant": false, "isLValue": false, "isPure": false, @@ -1154,28 +1124,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2492:23:19", + "src": "1375:23:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2994, + "id": 3119, "nodeType": "ExpressionStatement", - "src": "2492:23:19" + "src": "1375:23:19" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2996, + "id": 3121, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "2544:7:19", + "referencedDeclaration": 3111, + "src": "1427:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1158,18 @@ "typeString": "address" } ], - "id": 2995, + "id": 3120, "name": "AttendeeAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2913, - "src": "2530:13:19", + "referencedDeclaration": 3037, + "src": "1413:13:19", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2997, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,36 +1177,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2530:22:19", + "src": "1413:22:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2998, + "id": 3123, "nodeType": "EmitStatement", - "src": "2525:27:19" + "src": "1408:27:19" } ] }, - "documentation": null, - "id": 3000, + "id": 3125, "implemented": true, "kind": "function", "modifiers": [], "name": "_addAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2987, + "id": 3112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2986, + "id": 3111, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "2456:15:19", + "scope": 3125, + "src": "1331:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1245,52 +1215,49 @@ "typeString": "address" }, "typeName": { - "id": 2985, + "id": 3110, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2456:7:19", + "src": "1331:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2455:17:19" + "src": "1330:17:19" }, "returnParameters": { - "id": 2988, + "id": 3113, "nodeType": "ParameterList", "parameters": [], - "src": "2482:0:19" + "src": "1365:0:19" }, - "scope": 3017, - "src": "2434:125:19", + "scope": 3142, + "src": "1309:133:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3015, + "id": 3140, "nodeType": "Block", - "src": "2616:82:19", + "src": "1507:82:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3008, + "id": 3133, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "2644:7:19", + "referencedDeclaration": 3127, + "src": "1535:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1305,33 +1272,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3005, + "id": 3130, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2626:10:19", + "referencedDeclaration": 3043, + "src": "1517:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3007, + "id": 3132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2626:17:19", + "referencedDeclaration": 3591, + "src": "1517:17:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3009, + "id": 3134, "isConstant": false, "isLValue": false, "isPure": false, @@ -1339,28 +1305,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2626:26:19", + "src": "1517:26:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3010, + "id": 3135, "nodeType": "ExpressionStatement", - "src": "2626:26:19" + "src": "1517:26:19" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3012, + "id": 3137, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "2683:7:19", + "referencedDeclaration": 3127, + "src": "1574:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1374,18 +1339,18 @@ "typeString": "address" } ], - "id": 3011, + "id": 3136, "name": "AttendeeRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "2667:15:19", + "referencedDeclaration": 3041, + "src": "1558:15:19", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3013, + "id": 3138, "isConstant": false, "isLValue": false, "isPure": false, @@ -1393,36 +1358,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:24:19", + "src": "1558:24:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3014, + "id": 3139, "nodeType": "EmitStatement", - "src": "2662:29:19" + "src": "1553:29:19" } ] }, - "documentation": null, - "id": 3016, + "id": 3141, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 3128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 3127, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3016, - "src": "2590:15:19", + "scope": 3141, + "src": "1473:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1430,124 +1396,129 @@ "typeString": "address" }, "typeName": { - "id": 3001, + "id": 3126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2590:7:19", + "src": "1473:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2589:17:19" + "src": "1472:17:19" }, "returnParameters": { - "id": 3004, + "id": 3129, "nodeType": "ParameterList", "parameters": [], - "src": "2616:0:19" + "src": "1507:0:19" }, - "scope": 3017, - "src": "2565:133:19", + "scope": 3142, + "src": "1448:141:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3018, - "src": "1618:1082:19" + "scope": 3143, + "src": "477:1114:19" } ], - "src": "1285:1416:19" + "src": "173:1419:19" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "exportedSymbols": { - "AttendeeRole": [3017] + "AttendeeRole": [3142], + "Roles": [3618] }, - "id": 3018, + "id": 3143, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2905, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3028, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:19" + "src": "173:31:19" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 2906, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3029, "nodeType": "ImportDirective", - "scope": 3018, - "sourceUnit": 4083, - "src": "1310:58:19", + "scope": 3143, + "sourceUnit": 3619, + "src": "206:21:19", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for an Attendee role,\nwhich will registering ant attending hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3030, + "nodeType": "StructuredDocumentation", + "src": "229:247:19", + "text": "@notice Implements a access control for an Attendee role,\nwhich will registering ant attending hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": true, - "id": 3017, - "linearizedBaseContracts": [3017], + "id": 3142, + "linearizedBaseContracts": [3142], "name": "AttendeeRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2909, + "id": 3033, "libraryName": { - "contractScope": null, - "id": 2907, + "id": 3031, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1652:5:19", + "referencedDeclaration": 3618, + "src": "520:5:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1646:27:19", + "src": "514:27:19", "typeName": { - "contractScope": null, - "id": 2908, + "id": 3032, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1662:10:19", + "referencedDeclaration": 3540, + "src": "530:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 2913, + "id": 3037, "name": "AttendeeAdded", "nodeType": "EventDefinition", "parameters": { - "id": 2912, + "id": 3036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2911, + "id": 3035, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2913, - "src": "1699:23:19", + "scope": 3037, + "src": "567:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1555,42 +1526,41 @@ "typeString": "address" }, "typeName": { - "id": 2910, + "id": 3034, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1699:7:19", + "src": "567:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1698:25:19" + "src": "566:25:19" }, - "src": "1679:45:19" + "src": "547:45:19" }, { "anonymous": false, - "documentation": null, - "id": 2917, + "id": 3041, "name": "AttendeeRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 2916, + "id": 3040, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2915, + "id": 3039, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2917, - "src": "1751:23:19", + "scope": 3041, + "src": "619:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1598,81 +1568,76 @@ "typeString": "address" }, "typeName": { - "id": 2914, + "id": 3038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1751:7:19", + "src": "619:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1750:25:19" + "src": "618:25:19" }, - "src": "1729:47:19" + "src": "597:47:19" }, { "constant": false, - "id": 2919, + "id": 3043, + "mutability": "mutable", "name": "_attendees", "nodeType": "VariableDeclaration", - "scope": 3017, - "src": "1782:29:19", + "scope": 3142, + "src": "650:29:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 2918, + "id": 3042, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1782:10:19", + "referencedDeclaration": 3540, + "src": "650:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 2937, + "id": 3062, "nodeType": "Block", - "src": "1864:118:19", + "src": "723:118:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2929, + "id": 3054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2925, + "id": 3049, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "1882:15:19", + "referencedDeclaration": 3045, + "src": "741:15:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1681,20 +1646,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2927, + "id": 3052, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1909:1:19", - "subdenomination": null, + "src": "768:1:19", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1709,20 +1671,26 @@ "typeString": "int_const 0" } ], - "id": 2926, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1901:7:19", + "src": "760:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "760:7:19", + "typeDescriptions": {} + } }, - "id": 2928, + "id": 3053, "isConstant": false, "isLValue": false, "isPure": true, @@ -1730,30 +1698,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1901:10:19", + "src": "760:10:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1882:29:19", + "src": "741:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 2930, + "id": 3055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1913:22:19", - "subdenomination": null, + "src": "772:22:19", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -1772,18 +1739,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 2924, + "id": 3048, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1874:7:19", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "733:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2931, + "id": 3056, "isConstant": false, "isLValue": false, "isPure": false, @@ -1791,28 +1758,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1874:62:19", + "src": "733:62:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2932, + "id": 3057, "nodeType": "ExpressionStatement", - "src": "1874:62:19" + "src": "733:62:19" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2934, + "id": 3059, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "1959:15:19", + "referencedDeclaration": 3045, + "src": "818:15:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1826,18 +1792,18 @@ "typeString": "address" } ], - "id": 2933, + "id": 3058, "name": "_addAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "1946:12:19", + "referencedDeclaration": 3125, + "src": "805:12:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2935, + "id": 3060, "isConstant": false, "isLValue": false, "isPure": false, @@ -1845,36 +1811,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1946:29:19", + "src": "805:29:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2936, + "id": 3061, "nodeType": "ExpressionStatement", - "src": "1946:29:19" + "src": "805:29:19" } ] }, - "documentation": null, - "id": 2938, + "id": 3063, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2922, + "id": 3046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2921, + "id": 3045, + "mutability": "mutable", "name": "initialAttendee", "nodeType": "VariableDeclaration", - "scope": 2938, - "src": "1830:23:19", + "scope": 3063, + "src": "698:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1882,71 +1849,65 @@ "typeString": "address" }, "typeName": { - "id": 2920, + "id": 3044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1830:7:19", + "src": "698:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1829:25:19" + "src": "697:25:19" }, "returnParameters": { - "id": 2923, + "id": 3047, "nodeType": "ParameterList", "parameters": [], - "src": "1864:0:19" + "src": "723:0:19" }, - "scope": 3017, - "src": "1818:164:19", + "scope": 3142, + "src": "686:155:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2949, + "id": 3074, "nodeType": "Block", - "src": "2012:112:19", + "src": "871:112:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2942, + "id": 3067, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2041:3:19", + "referencedDeclaration": 4294967281, + "src": "900:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2943, + "id": 3068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2041:10:19", + "src": "900:10:19", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1960,18 +1921,18 @@ "typeString": "address payable" } ], - "id": 2941, + "id": 3066, "name": "isAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2963, - "src": "2030:10:19", + "referencedDeclaration": 3088, + "src": "889:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 2944, + "id": 3069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1979,24 +1940,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2030:22:19", + "src": "889:22:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e", - "id": 2945, + "id": 3070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2054:51:19", - "subdenomination": null, + "src": "913:51:19", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b8ef6ca71c10a3a6b68153c6d6c8e26c32622e32f1332f5b2b2d3c4398fd3758", "typeString": "literal_string \"AttendeeRole: caller does not have Attendee Role.\"" @@ -2015,18 +1975,18 @@ "typeString": "literal_string \"AttendeeRole: caller does not have Attendee Role.\"" } ], - "id": 2940, + "id": 3065, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2022:7:19", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "881:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2946, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, @@ -2034,54 +1994,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2022:84:19", + "src": "881:84:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2947, + "id": 3072, "nodeType": "ExpressionStatement", - "src": "2022:84:19" + "src": "881:84:19" }, { - "id": 2948, + "id": 3073, "nodeType": "PlaceholderStatement", - "src": "2116:1:19" + "src": "975:1:19" } ] }, - "documentation": null, - "id": 2950, + "id": 3075, "name": "onlyAttendee", "nodeType": "ModifierDefinition", "parameters": { - "id": 2939, + "id": 3064, "nodeType": "ParameterList", "parameters": [], - "src": "2009:2:19" + "src": "868:2:19" }, - "src": "1988:136:19", + "src": "847:136:19", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2962, + "id": 3087, "nodeType": "Block", - "src": "2194:47:19", + "src": "1053:47:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2959, + "id": 3084, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "2226:7:19", + "referencedDeclaration": 3077, + "src": "1085:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2096,33 +2055,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2957, + "id": 3082, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2211:10:19", + "referencedDeclaration": 3043, + "src": "1070:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 2958, + "id": 3083, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2211:14:19", + "referencedDeclaration": 3617, + "src": "1070:14:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 2960, + "id": 3085, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,37 +2088,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2211:23:19", + "src": "1070:23:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2956, - "id": 2961, + "functionReturnParameters": 3081, + "id": 3086, "nodeType": "Return", - "src": "2204:30:19" + "src": "1063:30:19" } ] }, - "documentation": null, - "id": 2963, + "functionSelector": "6cad2590", + "id": 3088, "implemented": true, "kind": "function", "modifiers": [], "name": "isAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2953, + "id": 3078, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2952, + "id": 3077, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "2150:15:19", + "scope": 3088, + "src": "1009:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2168,33 +2128,33 @@ "typeString": "address" }, "typeName": { - "id": 2951, + "id": 3076, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2150:7:19", + "src": "1009:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2149:17:19" + "src": "1008:17:19" }, "returnParameters": { - "id": 2956, + "id": 3081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2955, + "id": 3080, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2963, - "src": "2188:4:19", + "scope": 3088, + "src": "1047:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2202,45 +2162,42 @@ "typeString": "bool" }, "typeName": { - "id": 2954, + "id": 3079, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2188:4:19", + "src": "1047:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2187:6:19" + "src": "1046:6:19" }, - "scope": 3017, - "src": "2130:111:19", + "scope": 3142, + "src": "989:111:19", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2974, + "id": 3099, "nodeType": "Block", - "src": "2305:38:19", + "src": "1172:38:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2971, + "id": 3096, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2965, - "src": "2328:7:19", + "referencedDeclaration": 3090, + "src": "1195:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2254,18 +2211,18 @@ "typeString": "address" } ], - "id": 2970, + "id": 3095, "name": "_addAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "2315:12:19", + "referencedDeclaration": 3125, + "src": "1182:12:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2972, + "id": 3097, "isConstant": false, "isLValue": false, "isPure": false, @@ -2273,56 +2230,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2315:21:19", + "src": "1182:21:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2973, + "id": 3098, "nodeType": "ExpressionStatement", - "src": "2315:21:19" + "src": "1182:21:19" } ] }, - "documentation": null, - "id": 2975, + "functionSelector": "10246254", + "id": 3100, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2968, + "id": 3093, "modifierName": { - "argumentTypes": null, - "id": 2967, + "id": 3092, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "2292:12:19", + "referencedDeclaration": 3075, + "src": "1159:12:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2292:12:19" + "src": "1159:12:19" } ], "name": "addAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2966, + "id": 3091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2965, + "id": 3090, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2975, - "src": "2268:15:19", + "scope": 3100, + "src": "1127:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2330,68 +2287,63 @@ "typeString": "address" }, "typeName": { - "id": 2964, + "id": 3089, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2268:7:19", + "src": "1127:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2267:17:19" + "src": "1126:17:19" }, "returnParameters": { - "id": 2969, + "id": 3094, "nodeType": "ParameterList", "parameters": [], - "src": "2305:0:19" + "src": "1172:0:19" }, - "scope": 3017, - "src": "2247:96:19", + "scope": 3142, + "src": "1106:104:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2983, + "id": 3108, "nodeType": "Block", - "src": "2384:44:19", + "src": "1259:44:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2979, + "id": 3104, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2410:3:19", + "referencedDeclaration": 4294967281, + "src": "1285:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2980, + "id": 3105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2410:10:19", + "src": "1285:10:19", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2405,18 +2357,18 @@ "typeString": "address payable" } ], - "id": 2978, + "id": 3103, "name": "_removeAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3016, - "src": "2394:15:19", + "referencedDeclaration": 3141, + "src": "1269:15:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2981, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": false, @@ -2424,61 +2376,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2394:27:19", + "src": "1269:27:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2982, + "id": 3107, "nodeType": "ExpressionStatement", - "src": "2394:27:19" + "src": "1269:27:19" } ] }, - "documentation": null, - "id": 2984, + "functionSelector": "fb1da543", + "id": 3109, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2976, + "id": 3101, "nodeType": "ParameterList", "parameters": [], - "src": "2374:2:19" + "src": "1241:2:19" }, "returnParameters": { - "id": 2977, + "id": 3102, "nodeType": "ParameterList", "parameters": [], - "src": "2384:0:19" + "src": "1259:0:19" }, - "scope": 3017, - "src": "2349:79:19", + "scope": 3142, + "src": "1216:87:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2999, + "id": 3124, "nodeType": "Block", - "src": "2482:77:19", + "src": "1365:77:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2992, + "id": 3117, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "2507:7:19", + "referencedDeclaration": 3111, + "src": "1390:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2493,33 +2444,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2989, + "id": 3114, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2492:10:19", + "referencedDeclaration": 3043, + "src": "1375:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 2991, + "id": 3116, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2492:14:19", + "referencedDeclaration": 3566, + "src": "1375:14:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 2993, + "id": 3118, "isConstant": false, "isLValue": false, "isPure": false, @@ -2527,28 +2477,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2492:23:19", + "src": "1375:23:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2994, + "id": 3119, "nodeType": "ExpressionStatement", - "src": "2492:23:19" + "src": "1375:23:19" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2996, + "id": 3121, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2986, - "src": "2544:7:19", + "referencedDeclaration": 3111, + "src": "1427:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2562,18 +2511,18 @@ "typeString": "address" } ], - "id": 2995, + "id": 3120, "name": "AttendeeAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2913, - "src": "2530:13:19", + "referencedDeclaration": 3037, + "src": "1413:13:19", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2997, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, @@ -2581,36 +2530,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2530:22:19", + "src": "1413:22:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2998, + "id": 3123, "nodeType": "EmitStatement", - "src": "2525:27:19" + "src": "1408:27:19" } ] }, - "documentation": null, - "id": 3000, + "id": 3125, "implemented": true, "kind": "function", "modifiers": [], "name": "_addAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2987, + "id": 3112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2986, + "id": 3111, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "2456:15:19", + "scope": 3125, + "src": "1331:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2618,52 +2568,49 @@ "typeString": "address" }, "typeName": { - "id": 2985, + "id": 3110, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2456:7:19", + "src": "1331:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2455:17:19" + "src": "1330:17:19" }, "returnParameters": { - "id": 2988, + "id": 3113, "nodeType": "ParameterList", "parameters": [], - "src": "2482:0:19" + "src": "1365:0:19" }, - "scope": 3017, - "src": "2434:125:19", + "scope": 3142, + "src": "1309:133:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3015, + "id": 3140, "nodeType": "Block", - "src": "2616:82:19", + "src": "1507:82:19", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3008, + "id": 3133, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "2644:7:19", + "referencedDeclaration": 3127, + "src": "1535:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2678,33 +2625,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3005, + "id": 3130, "name": "_attendees", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "2626:10:19", + "referencedDeclaration": 3043, + "src": "1517:10:19", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3007, + "id": 3132, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2626:17:19", + "referencedDeclaration": 3591, + "src": "1517:17:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3009, + "id": 3134, "isConstant": false, "isLValue": false, "isPure": false, @@ -2712,28 +2658,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2626:26:19", + "src": "1517:26:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3010, + "id": 3135, "nodeType": "ExpressionStatement", - "src": "2626:26:19" + "src": "1517:26:19" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3012, + "id": 3137, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "2683:7:19", + "referencedDeclaration": 3127, + "src": "1574:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2747,18 +2692,18 @@ "typeString": "address" } ], - "id": 3011, + "id": 3136, "name": "AttendeeRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "2667:15:19", + "referencedDeclaration": 3041, + "src": "1558:15:19", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3013, + "id": 3138, "isConstant": false, "isLValue": false, "isPure": false, @@ -2766,36 +2711,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2667:24:19", + "src": "1558:24:19", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3014, + "id": 3139, "nodeType": "EmitStatement", - "src": "2662:29:19" + "src": "1553:29:19" } ] }, - "documentation": null, - "id": 3016, + "id": 3141, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 3128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 3127, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3016, - "src": "2590:15:19", + "scope": 3141, + "src": "1473:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2803,54 +2749,57 @@ "typeString": "address" }, "typeName": { - "id": 3001, + "id": 3126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2590:7:19", + "src": "1473:7:19", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2589:17:19" + "src": "1472:17:19" }, "returnParameters": { - "id": 3004, + "id": 3129, "nodeType": "ParameterList", "parameters": [], - "src": "2616:0:19" + "src": "1507:0:19" }, - "scope": 3017, - "src": "2565:133:19", + "scope": 3142, + "src": "1448:141:19", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3018, - "src": "1618:1082:19" + "scope": 3143, + "src": "477:1114:19" } ], - "src": "1285:1416:19" + "src": "173:1419:19" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.521Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.121Z", "devdoc": { "details": "not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { + "kind": "user", "methods": {}, - "notice": "Implements a access control for an Attendee role, which will registering ant attending hackathons/contests." + "notice": "Implements a access control for an Attendee role, which will registering ant attending hackathons/contests.", + "version": 1 } } diff --git a/build/contracts/AttendeeRoleMock.json b/build/contracts/AttendeeRoleMock.json index 8643a25..494fd49 100644 --- a/build/contracts/AttendeeRoleMock.json +++ b/build/contracts/AttendeeRoleMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -34,7 +33,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -44,12 +42,10 @@ ], "name": "addAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -65,21 +61,17 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -89,182 +81,176 @@ ], "name": "removeAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "onlyAttendeeMock", "outputs": [], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"onlyAttendeeMock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol\":\"AttendeeRoleMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol\":{\"keccak256\":\"0xe60dfaaab5f78650f6509d8454765750627ced2507a23f9163e8dccf937815fc\",\"urls\":[\"bzz-raw://34cfa056a5138ec00f53b86936005ae0b2d7f545297e56b706c32aeeea4bee3b\",\"dweb:/ipfs/QmPuoNTjM3Dfqt7GBhquJ8Fb8wH8pmeEQ8tyHtnkkT1aWz\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0x6d8a1612736c806680064dbb20da3b25b19fb68b0ea157764abe8c4d6c2c1014\",\"urls\":[\"bzz-raw://07c3ea494972a5d0bc34e75068125e2d82f824b973d7c42edaec5fa361e318e3\",\"dweb:/ipfs/QmaH1BkrDJEDkd3uEyTT42h39cGBrGrMCXw1YdaqaFQUsv\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50338061007e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b610090816001600160e01b0361009616565b5061020a565b6100ae8160006100e560201b61026c1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b6100f882826001600160e01b0361018916565b1561016457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061065e6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610445806102196000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063102462541461005c5780636cad259014610084578063b977672a146100be578063e55448fc146100c6578063fb1da543146100ec575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b005b6100aa6004803603602081101561009a57600080fd5b50356001600160a01b0316610144565b604080519115158252519081900360200190f35b61008261015c565b610082600480360360208110156100dc57600080fd5b50356001600160a01b03166101a2565b6100826101ab565b6100fd33610144565b6101385760405162461bcd60e51b81526004018080602001828103825260318152602001806103e06031913960400191505060405180910390fd5b610141816101b4565b50565b6000610156818363ffffffff6101fc16565b92915050565b61016533610144565b6101a05760405162461bcd60e51b81526004018080602001828103825260318152602001806103e06031913960400191505060405180910390fd5b565b61014181610263565b6101a033610263565b6101c560008263ffffffff61026c16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60006001600160a01b0382166102435760405162461bcd60e51b81526004018080602001828103825260228152602001806103be6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610141816102ed565b61027682826101fc565b156102c8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6102fe60008263ffffffff61033516565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b61033f82826101fc565b61037a5760405162461bcd60e51b815260040180806020018281038252602181526020018061039d6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652ea265627a7a72315820c5b752bc210b402fcc1af37cd64845b51109b2015adacfb88f51625db6f7133264736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063102462541461005c5780636cad259014610084578063b977672a146100be578063e55448fc146100c6578063fb1da543146100ec575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b005b6100aa6004803603602081101561009a57600080fd5b50356001600160a01b0316610144565b604080519115158252519081900360200190f35b61008261015c565b610082600480360360208110156100dc57600080fd5b50356001600160a01b03166101a2565b6100826101ab565b6100fd33610144565b6101385760405162461bcd60e51b81526004018080602001828103825260318152602001806103e06031913960400191505060405180910390fd5b610141816101b4565b50565b6000610156818363ffffffff6101fc16565b92915050565b61016533610144565b6101a05760405162461bcd60e51b81526004018080602001828103825260318152602001806103e06031913960400191505060405180910390fd5b565b61014181610263565b6101a033610263565b6101c560008263ffffffff61026c16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60006001600160a01b0382166102435760405162461bcd60e51b81526004018080602001828103825260228152602001806103be6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610141816102ed565b61027682826101fc565b156102c8576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6102fe60008263ffffffff61033516565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b61033f82826101fc565b61037a5760405162461bcd60e51b815260040180806020018281038252602181526020018061039d6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652ea265627a7a72315820c5b752bc210b402fcc1af37cd64845b51109b2015adacfb88f51625db6f7133264736f6c634300050c0032", - "sourceMap": "1344:495:8:-;;;1392:48;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1426:10:8;1882:29:19;1874:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1946:29;1959:15;-1:-1:-1;;;;;1946:12:19;:29;:::i;:::-;1818:164;1344:495:8;;2434:125:19;2492:23;2507:7;2492:10;:14;;;;;;:23;;;;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1344:495:8:-;;;;;;;", - "deployedSourceMap": "1344:495:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1344:495:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:96:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2247:96:19;-1:-1:-1;;;;;2247:96:19;;:::i;:::-;;2130:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2130:111:19;-1:-1:-1;;;;;2130:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;1541:117:8;;;:::i;1446:89::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1446:89:8;-1:-1:-1;;;;;1446:89:8;;:::i;2349:79:19:-;;;:::i;2247:96::-;2030:22;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2315:21;2328:7;2315:12;:21::i;:::-;2247:96;:::o;2130:111::-;2188:4;2211:23;2188:4;2226:7;2211:23;:14;:23;:::i;:::-;2204:30;2130:111;-1:-1:-1;;2130:111:19:o;1541:117:8:-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:117:8:o;1446:89::-;1504:24;1520:7;1504:15;:24::i;2349:79:19:-;2394:27;2410:10;2394:15;:27::i;2434:125::-;2492:23;:10;2507:7;2492:23;:14;:23;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1739:98:8:-;1800:30;1822:7;1800:21;:30::i;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;2565:133:19:-;2626:26;:10;2644:7;2626:26;:17;:26;:::i;:::-;2667:24;;-1:-1:-1;;;;;2667:24:19;;;;;;;;2565:133;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity ^0.5.0;\n\nimport \"../roles/AttendeeRole.sol\";\n\ncontract AttendeeRoleMock is AttendeeRole {\n constructor() public AttendeeRole(msg.sender) {}\n\n function removeAttendee(address account) public {\n _removeAttendee(account);\n }\n\n function onlyAttendeeMock() public view onlyAttendee {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeAttendee is not internal\n function _removeAttendee(address account) internal {\n super._removeAttendee(account);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyAttendeeMock\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol\":\"AttendeeRoleMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol\":{\"keccak256\":\"0x2e43aa8b70c395db130d69bdf60d5baa9bbecfd7de29db540e655be93c317a9b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d20f4064dd87646f8bafbf21f9cb9137cc660cda3ffe9374bb76a9063fecb5a9\",\"dweb:/ipfs/QmSyyedxGxdu2eMTroJayJn6VCPw8RkACu4UVfprtu52ZR\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0xa51bbee9262940c417d864967fc5b3c9e90fdb20848ec3afc04c30e1d2bf3e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://926e4555fa2fcf567df76509680bdf5600edc33335f263f11c46a297951d67dc\",\"dweb:/ipfs/QmPkhvmATnQ9KkiGxdohwdWET3RZVfvhDQek3M9ZzZxGtU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b503380610064576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b61006d81610073565b506101aa565b61008b8160006100c260201b6101ae1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b6100cc8282610143565b1561011e576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821661018a5760405162461bcd60e51b81526004018080602001828103825260228152602001806105e86022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61042f806101b96000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063102462541461005c5780636cad259014610084578063b977672a146100be578063e55448fc146100c6578063fb1da543146100ec575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b005b6100aa6004803603602081101561009a57600080fd5b50356001600160a01b0316610144565b604080519115158252519081900360200190f35b610082610156565b610082600480360360208110156100dc57600080fd5b50356001600160a01b031661019c565b6100826101a5565b6100fd33610144565b6101385760405162461bcd60e51b81526004018080602001828103825260318152602001806103c96031913960400191505060405180910390fd5b6101418161022f565b50565b60006101508183610271565b92915050565b61015f33610144565b61019a5760405162461bcd60e51b81526004018080602001828103825260318152602001806103c96031913960400191505060405180910390fd5b565b610141816102d8565b61019a336102d8565b6101b88282610271565b1561020a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61023a6000826101ae565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60006001600160a01b0382166102b85760405162461bcd60e51b81526004018080602001828103825260228152602001806103a76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610141816102e760008261031e565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b6103288282610271565b6103635760405162461bcd60e51b81526004018080602001828103825260218152602001806103866021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652ea2646970667358221220ca9b01987ec30b96b9ee5e413ad51b84fad5078d1d7298102039bf80ef7142fb64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063102462541461005c5780636cad259014610084578063b977672a146100be578063e55448fc146100c6578063fb1da543146100ec575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b005b6100aa6004803603602081101561009a57600080fd5b50356001600160a01b0316610144565b604080519115158252519081900360200190f35b610082610156565b610082600480360360208110156100dc57600080fd5b50356001600160a01b031661019c565b6100826101a5565b6100fd33610144565b6101385760405162461bcd60e51b81526004018080602001828103825260318152602001806103c96031913960400191505060405180910390fd5b6101418161022f565b50565b60006101508183610271565b92915050565b61015f33610144565b61019a5760405162461bcd60e51b81526004018080602001828103825260318152602001806103c96031913960400191505060405180910390fd5b565b610141816102d8565b61019a336102d8565b6101b88282610271565b1561020a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61023a6000826101ae565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60006001600160a01b0382166102b85760405162461bcd60e51b81526004018080602001828103825260228152602001806103a76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610141816102e760008261031e565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b6103288282610271565b6103635760405162461bcd60e51b81526004018080602001828103825260218152602001806103866021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652ea2646970667358221220ca9b01987ec30b96b9ee5e413ad51b84fad5078d1d7298102039bf80ef7142fb64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "240:497:8:-:0;;;288:41;;;;;;;;;-1:-1:-1;315:10:8;741:29:19;733:62;;;;;-1:-1:-1;;;733:62:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:29;818:15;805:12;:29::i;:::-;686:155;240:497:8;;1309:133:19;1375:23;1390:7;1375:10;:14;;;;;;:23;;;;:::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;240:497:8:-;;;;;;;", + "deployedSourceMap": "240:497:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:104:19;;;;;;;;;;;;;;;;-1:-1:-1;1106:104:19;-1:-1:-1;;;;;1106:104:19;;:::i;:::-;;989:111;;;;;;;;;;;;;;;;-1:-1:-1;989:111:19;-1:-1:-1;;;;;989:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;430:117:8;;;:::i;335:89::-;;;;;;;;;;;;;;;;-1:-1:-1;335:89:8;-1:-1:-1;;;;;335:89:8;;:::i;1216:87:19:-;;;:::i;1106:104::-;889:22;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:21:::1;1195:7;1182:12;:21::i;:::-;1106:104:::0;:::o;989:111::-;1047:4;1070:23;1047:4;1085:7;1070:14;:23::i;:::-;1063:30;989:111;-1:-1:-1;;989:111:19:o;430:117:8:-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;430:117:8:o;335:89::-;393:24;409:7;393:15;:24::i;1216:87:19:-;1269:27;1285:10;1269:15;:27::i;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;1309:133:19:-;1375:23;:10;1390:7;1375:14;:23::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;628:107:8:-;698:30;720:7;1517:26:19;:10;1535:7;1517:17;:26::i;:::-;1558:24;;-1:-1:-1;;;;;1558:24:19;;;;;;;;1448:141;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../roles/AttendeeRole.sol\";\n\ncontract AttendeeRoleMock is AttendeeRole {\n constructor() AttendeeRole(msg.sender) {}\n\n function removeAttendee(address account) public {\n _removeAttendee(account);\n }\n\n function onlyAttendeeMock() public view onlyAttendee {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeAttendee is not internal\n function _removeAttendee(address account) internal override {\n super._removeAttendee(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol", "exportedSymbols": { - "AttendeeRoleMock": [2541] + "AttendeeRole": [3142], + "AttendeeRoleMock": [2650], + "Roles": [3618] }, - "id": 2542, + "id": 2651, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2501, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2609, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:8" + "src": "170:31:8" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "file": "../roles/AttendeeRole.sol", - "id": 2502, + "id": 2610, "nodeType": "ImportDirective", - "scope": 2542, - "sourceUnit": 3018, - "src": "1307:35:8", + "scope": 2651, + "sourceUnit": 3143, + "src": "203:35:8", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2503, + "id": 2611, "name": "AttendeeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3017, - "src": "1373:12:8", + "referencedDeclaration": 3142, + "src": "269:12:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AttendeeRole_$3017", + "typeIdentifier": "t_contract$_AttendeeRole_$3142", "typeString": "contract AttendeeRole" } }, - "id": 2504, + "id": 2612, "nodeType": "InheritanceSpecifier", - "src": "1373:12:8" + "src": "269:12:8" } ], - "contractDependencies": [3017], + "contractDependencies": [3142], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2541, - "linearizedBaseContracts": [2541, 3017], + "id": 2650, + "linearizedBaseContracts": [2650, 3142], "name": "AttendeeRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2511, + "id": 2619, "nodeType": "Block", - "src": "1438:2:8", + "src": "327:2:8", "statements": [] }, - "documentation": null, - "id": 2512, + "id": 2620, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2507, + "id": 2615, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1426:3:8", + "referencedDeclaration": 4294967281, + "src": "315:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2508, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1426:10:8", + "src": "315:10:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2509, + "id": 2617, "modifierName": { - "argumentTypes": null, - "id": 2506, + "id": 2614, "name": "AttendeeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3017, - "src": "1413:12:8", + "referencedDeclaration": 3142, + "src": "302:12:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3017_$", + "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3142_$", "typeString": "type(contract AttendeeRole)" } }, "nodeType": "ModifierInvocation", - "src": "1413:24:8" + "src": "302:24:8" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2505, + "id": 2613, "nodeType": "ParameterList", "parameters": [], - "src": "1403:2:8" + "src": "299:2:8" }, "returnParameters": { - "id": 2510, + "id": 2618, "nodeType": "ParameterList", "parameters": [], - "src": "1438:0:8" + "src": "327:0:8" }, - "scope": 2541, - "src": "1392:48:8", + "scope": 2650, + "src": "288:41:8", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2521, + "id": 2629, "nodeType": "Block", - "src": "1494:41:8", + "src": "383:41:8", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2518, + "id": 2626, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2514, - "src": "1520:7:8", + "referencedDeclaration": 2622, + "src": "409:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -278,18 +264,18 @@ "typeString": "address" } ], - "id": 2517, + "id": 2625, "name": "_removeAttendee", "nodeType": "Identifier", - "overloadedDeclarations": [2540], - "referencedDeclaration": 2540, - "src": "1504:15:8", + "overloadedDeclarations": [2649], + "referencedDeclaration": 2649, + "src": "393:15:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2519, + "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, @@ -297,36 +283,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1504:24:8", + "src": "393:24:8", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 2628, "nodeType": "ExpressionStatement", - "src": "1504:24:8" + "src": "393:24:8" } ] }, - "documentation": null, - "id": 2522, + "functionSelector": "e55448fc", + "id": 2630, "implemented": true, "kind": "function", "modifiers": [], "name": "removeAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2515, + "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2514, + "id": 2622, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2522, - "src": "1470:15:8", + "scope": 2630, + "src": "359:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -334,104 +322,100 @@ "typeString": "address" }, "typeName": { - "id": 2513, + "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1470:7:8", + "src": "359:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1469:17:8" + "src": "358:17:8" }, "returnParameters": { - "id": 2516, + "id": 2624, "nodeType": "ParameterList", "parameters": [], - "src": "1494:0:8" + "src": "383:0:8" }, - "scope": 2541, - "src": "1446:89:8", + "scope": 2650, + "src": "335:89:8", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2527, + "id": 2635, "nodeType": "Block", - "src": "1594:64:8", + "src": "483:64:8", "statements": [] }, - "documentation": null, - "id": 2528, + "functionSelector": "b977672a", + "id": 2636, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2525, + "id": 2633, "modifierName": { - "argumentTypes": null, - "id": 2524, + "id": 2632, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1581:12:8", + "referencedDeclaration": 3075, + "src": "470:12:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1581:12:8" + "src": "470:12:8" } ], "name": "onlyAttendeeMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2523, + "id": 2631, "nodeType": "ParameterList", "parameters": [], - "src": "1566:2:8" + "src": "455:2:8" }, "returnParameters": { - "id": 2526, + "id": 2634, "nodeType": "ParameterList", "parameters": [], - "src": "1594:0:8" + "src": "483:0:8" }, - "scope": 2541, - "src": "1541:117:8", + "scope": 2650, + "src": "430:117:8", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3141], "body": { - "id": 2539, + "id": 2648, "nodeType": "Block", - "src": "1790:47:8", + "src": "688:47:8", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2536, + "id": 2645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, - "src": "1822:7:8", + "referencedDeclaration": 2638, + "src": "720:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -446,33 +430,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2533, + "id": 2642, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "1800:5:8", + "referencedDeclaration": 4294967271, + "src": "698:5:8", "typeDescriptions": { - "typeIdentifier": "t_super$_AttendeeRoleMock_$2541", + "typeIdentifier": "t_super$_AttendeeRoleMock_$2650", "typeString": "contract super AttendeeRoleMock" } }, - "id": 2535, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3016, - "src": "1800:21:8", + "referencedDeclaration": 3141, + "src": "698:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2537, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, @@ -480,36 +463,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1800:30:8", + "src": "698:30:8", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2538, + "id": 2647, "nodeType": "ExpressionStatement", - "src": "1800:30:8" + "src": "698:30:8" } ] }, - "documentation": null, - "id": 2540, + "id": 2649, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2640, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "679:8:8" + }, "parameters": { - "id": 2531, + "id": 2639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2530, + "id": 2638, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "1764:15:8", + "scope": 2649, + "src": "653:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -517,196 +507,189 @@ "typeString": "address" }, "typeName": { - "id": 2529, + "id": 2637, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:8", + "src": "653:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1763:17:8" + "src": "652:17:8" }, "returnParameters": { - "id": 2532, + "id": 2641, "nodeType": "ParameterList", "parameters": [], - "src": "1790:0:8" + "src": "688:0:8" }, - "scope": 2541, - "src": "1739:98:8", + "scope": 2650, + "src": "628:107:8", "stateMutability": "nonpayable", - "superFunction": 3016, + "virtual": false, "visibility": "internal" } ], - "scope": 2542, - "src": "1344:495:8" + "scope": 2651, + "src": "240:497:8" } ], - "src": "1282:558:8" + "src": "170:568:8" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/AttendeeRoleMock.sol", "exportedSymbols": { - "AttendeeRoleMock": [2541] + "AttendeeRole": [3142], + "AttendeeRoleMock": [2650], + "Roles": [3618] }, - "id": 2542, + "id": 2651, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2501, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2609, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:8" + "src": "170:31:8" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "file": "../roles/AttendeeRole.sol", - "id": 2502, + "id": 2610, "nodeType": "ImportDirective", - "scope": 2542, - "sourceUnit": 3018, - "src": "1307:35:8", + "scope": 2651, + "sourceUnit": 3143, + "src": "203:35:8", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2503, + "id": 2611, "name": "AttendeeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3017, - "src": "1373:12:8", + "referencedDeclaration": 3142, + "src": "269:12:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_AttendeeRole_$3017", + "typeIdentifier": "t_contract$_AttendeeRole_$3142", "typeString": "contract AttendeeRole" } }, - "id": 2504, + "id": 2612, "nodeType": "InheritanceSpecifier", - "src": "1373:12:8" + "src": "269:12:8" } ], - "contractDependencies": [3017], + "contractDependencies": [3142], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2541, - "linearizedBaseContracts": [2541, 3017], + "id": 2650, + "linearizedBaseContracts": [2650, 3142], "name": "AttendeeRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2511, + "id": 2619, "nodeType": "Block", - "src": "1438:2:8", + "src": "327:2:8", "statements": [] }, - "documentation": null, - "id": 2512, + "id": 2620, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2507, + "id": 2615, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1426:3:8", + "referencedDeclaration": 4294967281, + "src": "315:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2508, + "id": 2616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1426:10:8", + "src": "315:10:8", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2509, + "id": 2617, "modifierName": { - "argumentTypes": null, - "id": 2506, + "id": 2614, "name": "AttendeeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3017, - "src": "1413:12:8", + "referencedDeclaration": 3142, + "src": "302:12:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3017_$", + "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3142_$", "typeString": "type(contract AttendeeRole)" } }, "nodeType": "ModifierInvocation", - "src": "1413:24:8" + "src": "302:24:8" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2505, + "id": 2613, "nodeType": "ParameterList", "parameters": [], - "src": "1403:2:8" + "src": "299:2:8" }, "returnParameters": { - "id": 2510, + "id": 2618, "nodeType": "ParameterList", "parameters": [], - "src": "1438:0:8" + "src": "327:0:8" }, - "scope": 2541, - "src": "1392:48:8", + "scope": 2650, + "src": "288:41:8", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2521, + "id": 2629, "nodeType": "Block", - "src": "1494:41:8", + "src": "383:41:8", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2518, + "id": 2626, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2514, - "src": "1520:7:8", + "referencedDeclaration": 2622, + "src": "409:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -720,18 +703,18 @@ "typeString": "address" } ], - "id": 2517, + "id": 2625, "name": "_removeAttendee", "nodeType": "Identifier", - "overloadedDeclarations": [2540], - "referencedDeclaration": 2540, - "src": "1504:15:8", + "overloadedDeclarations": [2649], + "referencedDeclaration": 2649, + "src": "393:15:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2519, + "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,36 +722,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1504:24:8", + "src": "393:24:8", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2520, + "id": 2628, "nodeType": "ExpressionStatement", - "src": "1504:24:8" + "src": "393:24:8" } ] }, - "documentation": null, - "id": 2522, + "functionSelector": "e55448fc", + "id": 2630, "implemented": true, "kind": "function", "modifiers": [], "name": "removeAttendee", "nodeType": "FunctionDefinition", "parameters": { - "id": 2515, + "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2514, + "id": 2622, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2522, - "src": "1470:15:8", + "scope": 2630, + "src": "359:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -776,104 +761,100 @@ "typeString": "address" }, "typeName": { - "id": 2513, + "id": 2621, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1470:7:8", + "src": "359:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1469:17:8" + "src": "358:17:8" }, "returnParameters": { - "id": 2516, + "id": 2624, "nodeType": "ParameterList", "parameters": [], - "src": "1494:0:8" + "src": "383:0:8" }, - "scope": 2541, - "src": "1446:89:8", + "scope": 2650, + "src": "335:89:8", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2527, + "id": 2635, "nodeType": "Block", - "src": "1594:64:8", + "src": "483:64:8", "statements": [] }, - "documentation": null, - "id": 2528, + "functionSelector": "b977672a", + "id": 2636, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2525, + "id": 2633, "modifierName": { - "argumentTypes": null, - "id": 2524, + "id": 2632, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1581:12:8", + "referencedDeclaration": 3075, + "src": "470:12:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1581:12:8" + "src": "470:12:8" } ], "name": "onlyAttendeeMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2523, + "id": 2631, "nodeType": "ParameterList", "parameters": [], - "src": "1566:2:8" + "src": "455:2:8" }, "returnParameters": { - "id": 2526, + "id": 2634, "nodeType": "ParameterList", "parameters": [], - "src": "1594:0:8" + "src": "483:0:8" }, - "scope": 2541, - "src": "1541:117:8", + "scope": 2650, + "src": "430:117:8", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3141], "body": { - "id": 2539, + "id": 2648, "nodeType": "Block", - "src": "1790:47:8", + "src": "688:47:8", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2536, + "id": 2645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2530, - "src": "1822:7:8", + "referencedDeclaration": 2638, + "src": "720:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -888,33 +869,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2533, + "id": 2642, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4277, - "src": "1800:5:8", + "referencedDeclaration": 4294967271, + "src": "698:5:8", "typeDescriptions": { - "typeIdentifier": "t_super$_AttendeeRoleMock_$2541", + "typeIdentifier": "t_super$_AttendeeRoleMock_$2650", "typeString": "contract super AttendeeRoleMock" } }, - "id": 2535, + "id": 2644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3016, - "src": "1800:21:8", + "referencedDeclaration": 3141, + "src": "698:21:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2537, + "id": 2646, "isConstant": false, "isLValue": false, "isPure": false, @@ -922,36 +902,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1800:30:8", + "src": "698:30:8", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2538, + "id": 2647, "nodeType": "ExpressionStatement", - "src": "1800:30:8" + "src": "698:30:8" } ] }, - "documentation": null, - "id": 2540, + "id": 2649, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2640, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "679:8:8" + }, "parameters": { - "id": 2531, + "id": 2639, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2530, + "id": 2638, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2540, - "src": "1764:15:8", + "scope": 2649, + "src": "653:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -959,52 +946,55 @@ "typeString": "address" }, "typeName": { - "id": 2529, + "id": 2637, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1764:7:8", + "src": "653:7:8", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1763:17:8" + "src": "652:17:8" }, "returnParameters": { - "id": 2532, + "id": 2641, "nodeType": "ParameterList", "parameters": [], - "src": "1790:0:8" + "src": "688:0:8" }, - "scope": 2541, - "src": "1739:98:8", + "scope": 2650, + "src": "628:107:8", "stateMutability": "nonpayable", - "superFunction": 3016, + "virtual": false, "visibility": "internal" } ], - "scope": 2542, - "src": "1344:495:8" + "scope": 2651, + "src": "240:497:8" } ], - "src": "1282:558:8" + "src": "170:568:8" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.499Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.084Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } diff --git a/build/contracts/Contest.json b/build/contracts/Contest.json deleted file mode 100644 index 6b1efa2..0000000 --- a/build/contracts/Contest.json +++ /dev/null @@ -1,351 +0,0 @@ -{ - "contractName": "Contest", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isOrganizer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOrganizer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "removeJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addOrganizer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isJudge", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "JudgeAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "JudgeRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "OrganizerAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "OrganizerRemoved", - "type": "event" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol\":\"Contest\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol\":{\"keccak256\":\"0x8134da2697a050f024e9b2a72399bee001aea1f2f5d2311100ce09586ea6cff6\",\"urls\":[\"bzzr://0cef913a743c86bf0c7ca9c80eff244ef9effa2242adbc8a9caa6e56a86495ba\"]},\"/home/odisi/dev/projects/hackapay/contracts/core/IContest.sol\":{\"keccak256\":\"0xb7b7cf00e0cf438af996b141b42cc14fd353ae6ba2aad567d20fc69124802665\",\"urls\":[\"bzzr://d11a1dd639423573d538b2ca07aca6841573e2c423a88f554b50531fb97e7912\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x6dcefe1cf7b789d8e75c3ae69fbadc67ddb82da2bb9a3a050b6d953d322f5323\",\"urls\":[\"bzzr://c6384dc5cd8bd656f75729638cd8a4bf349cbd6436e045f8bbf11b7cb2aaa6cc\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x8ca0c43c75fa548aa501b507ca4763b4ec1a9b8d4e61e0e1b1a7aaf9b0bf7894\",\"urls\":[\"bzzr://4bdf22c3299a6305c6a75a4eec520152b8df0a56dc36a4e055a2c3354c4e08fa\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0xe1d25d59267121befa1f264b5e790165853367df7cd994cfef57a73272d316a1\",\"urls\":[\"bzzr://f277f47782f8873b8ffb355f48ba49884e2e552278c6aa97d8b9e7586fb59f7b\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n// import \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../roles/ContestRoleManager.sol\";\nimport \"./IContest.sol\";\n\ncontract Contest is IContest, ContestRoleManager {\n// using SafeMath for uint256;\n\n// struct Team {\n// uint256 id;\n// bytes32 name;\n// address payable teamAddress;\n// bytes32 proposalData;\n// bool approved;\n// uint256 grade;\n// }\n\n// // Team's helpers\n// mapping(uint256 => Team) internal teamById;\n// Team[] public teams;\n// uint256 internal approvedTeamsCount;\n\n// uint256 public id;\n// bytes32 public name;\n// bytes32 public description;\n// bool internal allowsRegistration;\n\n// modifier registrationIsOpen() {\n// require(allowsRegistration == true, \"Registration is not allowed.\");\n// _;\n// }\n\n// constructor(uint256 _id, bytes32 _name, bytes32 _description, address initialOrganizer) public ContestRoleManager(initialOrganizer) {\n// require(_name[0] != 0, \"Name cannot be empty\");\n// id = _id;\n// name = _name;\n// description = _description;\n// }\n\n// function registerTeam(bytes32 teamName, address payable teamAddress, bytes32 proposalData)\n// public\n// registrationIsOpen\n// returns (bool)\n// {\n// require(teamName[0] != 0, \"Team name cannot be empty\");\n// require(teamAddress != address(0), \"\");\n// uint256 teamId = teams.length;\n// // Teams are initialy approved. Based on expectation that most teams would be approved to participate in the contest,\n// // avoiding organizers to send multiple or incurring in additional transaction cost to approve the majority of teams.\n// // If needed, organizers can send transactions to reprove teams (less transactions == less cost);\n// teams[teamId] = Team(teamId, teamName, teamAddress, proposalData, true, 0);\n// }\n\n}\n", - "sourcePath": "/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol", - "ast": { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol", - "exportedSymbols": { - "Contest": [65] - }, - "id": 66, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 58, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/roles/ContestRoleManager.sol", - "file": "../roles/ContestRoleManager.sol", - "id": 59, - "nodeType": "ImportDirective", - "scope": 66, - "sourceUnit": 2926, - "src": "88:41:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/IContest.sol", - "file": "./IContest.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 66, - "sourceUnit": 2118, - "src": "130:24:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 61, - "name": "IContest", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2117, - "src": "176:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContest_$2117", - "typeString": "contract IContest" - } - }, - "id": 62, - "nodeType": "InheritanceSpecifier", - "src": "176:8:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 63, - "name": "ContestRoleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2925, - "src": "186:18:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$2925", - "typeString": "contract ContestRoleManager" - } - }, - "id": 64, - "nodeType": "InheritanceSpecifier", - "src": "186:18:1" - } - ], - "contractDependencies": [2117, 2925, 3017, 3131], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 65, - "linearizedBaseContracts": [65, 2925, 3017, 3131, 2117], - "name": "Contest", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 66, - "src": "156:1815:1" - } - ], - "src": "0:1972:1" - }, - "legacyAST": { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol", - "exportedSymbols": { - "Contest": [65] - }, - "id": 66, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 58, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/roles/ContestRoleManager.sol", - "file": "../roles/ContestRoleManager.sol", - "id": 59, - "nodeType": "ImportDirective", - "scope": 66, - "sourceUnit": 2926, - "src": "88:41:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/IContest.sol", - "file": "./IContest.sol", - "id": 60, - "nodeType": "ImportDirective", - "scope": 66, - "sourceUnit": 2118, - "src": "130:24:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 61, - "name": "IContest", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2117, - "src": "176:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IContest_$2117", - "typeString": "contract IContest" - } - }, - "id": 62, - "nodeType": "InheritanceSpecifier", - "src": "176:8:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 63, - "name": "ContestRoleManager", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2925, - "src": "186:18:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$2925", - "typeString": "contract ContestRoleManager" - } - }, - "id": 64, - "nodeType": "InheritanceSpecifier", - "src": "186:18:1" - } - ], - "contractDependencies": [2117, 2925, 3017, 3131], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 65, - "linearizedBaseContracts": [65, 2925, 3017, 3131, 2117], - "name": "Contest", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 66, - "src": "156:1815:1" - } - ], - "src": "0:1972:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.8+commit.23d335f2.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.11", - "updatedAt": "2019-07-29T15:59:47.365Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} diff --git a/build/contracts/ContestBracketRegistry.json b/build/contracts/ContestBracketRegistry.json index 5d0c207..733cb9b 100644 --- a/build/contracts/ContestBracketRegistry.json +++ b/build/contracts/ContestBracketRegistry.json @@ -1,18 +1,6 @@ { "contractName": "ContestBracketRegistry", "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOrganizer", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -236,7 +224,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -246,12 +233,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -261,12 +246,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -276,12 +259,10 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -291,12 +272,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -306,12 +285,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -347,12 +324,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -388,12 +363,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -409,12 +382,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -430,12 +401,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -461,12 +430,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -476,30 +443,24 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -509,12 +470,10 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -524,12 +483,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -570,12 +527,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -590,12 +545,10 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -610,21 +563,17 @@ ], "name": "submitEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "publishRank", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getWinnersIds", "outputs": [ @@ -644,66 +593,52 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getEvaluationStatus", "outputs": [ @@ -713,40 +648,49 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOrganizer\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"constructor\":{\"details\":\"This class needs to be inherited - internal visibility\",\"params\":{\"initialOrganizer\":\"Represents the organizer who owns the contest, initially.\"}},\"getEvaluationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getWinnersIds()\":{\"return\":\"{uint256} First place's id{uint256} Second place's id{uint256} Third place's id\"},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}}},\"userdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"notice\":\"Controls the evaluation process by the judges and publishing of final results.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":\"ContestBracketRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xc15a9e0ef31fce09f610aa64da88dbf3f256af120e0c94d4b90dca958cc61a0f\",\"urls\":[\"bzz-raw://9597586371e6012927afcecc19997345b541dab8882a8cb7cc7e8f46a3f60838\",\"dweb:/ipfs/QmdUxhk9iwYeY1WNHcAxFDTMFoMznLd36FCko9AmwYwDaJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EvaluationStatusUpdated(bool)\":{\"details\":\"emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}\"},\"JudgeVoted(uint256,address)\":{\"details\":\"emitted when a judge submits its evaluation.\"},\"WinnerAnnouced(uint256,address,uint256,uint8)\":{\"details\":\"emitted when winners are announced.\"}},\"kind\":\"dev\",\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"constructor\":{\"details\":\"This class needs to be inherited - internal visibility\",\"params\":{\"initialOrganizer\":\"Represents the organizer who owns the contest, initially.\"}},\"getEvaluationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getWinnersIds()\":{\"returns\":{\"_0\":\"{uint256} First place's id\",\"_1\":\"{uint256} Second place's id\",\"_2\":\"{uint256} Third place's id\"}},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"notice\":\"Controls the evaluation process by the judges and publishing of final results.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":\"ContestBracketRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xd1196a748082cce096e21d641038731001120bb5541da30f790f60e25755f47f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bca457ac99eada6a9ced6bce02820693a3a01d593b999f53efd2de08e76d1ff\",\"dweb:/ipfs/QmV5ZNGfyjhfXD8g9Akt2bLm8dthjfe5bCm1xdXSbgm3sS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"./ContestTeamRegistry.sol\";\nimport \"../roles/ContestRoleManager.sol\";\n\n/**\n @notice Controls the evaluation process by the judges and publishing of final results.\n */\ncontract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager {\n using SafeMath for uint256;\n\n /// @notice Represetns a judge evaluating the teams in the contest.\n struct Judge {\n uint256 id;\n address judgeAddress;\n bool active;\n bool voted;\n }\n\n // Judge's helpers\n Judge[] internal judgesInfo; // List of judges\n // uint256 internal activeJudgesCount; // Controls active judges (the ones not removed)\n mapping(address => Judge) internal judgeByAddress;\n bool internal evaluationEnabled;\n Team internal firstPlace;\n Team internal secondPlace;\n Team internal thirdPlace;\n bool internal rankPublished;\n\n /// @dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}\n event EvaluationStatusUpdated(bool enabled);\n /// @dev emitted when a judge submits its evaluation.\n event JudgeVoted(uint256 indexed id, address judgeAddress);\n /// @dev emitted when winners are announced.\n event WinnerAnnouced(uint256 teamId, address teamAddress, uint256 finalGrade, uint8 rankPosition);\n\n modifier evaluationIsOpen() {\n require(evaluationEnabled, \"Evaluation is closed\");\n _;\n }\n\n modifier evaluationIsClosed() {\n require(!evaluationEnabled, \"Evaluation is open\");\n _;\n }\n\n modifier whenRankPublished {\n require(rankPublished, \"Rank not published yet\");\n _;\n }\n\n modifier whenRankNotPublished {\n require(!rankPublished, \"Rank already published\");\n _;\n }\n\n ///@dev This class needs to be inherited - internal visibility\n /// @param initialOrganizer Represents the organizer who owns the contest, initially.\n constructor(address initialOrganizer) internal ContestTeamRegistry() ContestRoleManager(initialOrganizer) {}\n\n /**\n @notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\n teams must be submitted once.\n @param teamIds Array of the ids associated with each team that is going to be evaluated.\n @param teamGrades Array of the grades given by the judge for each team.\n @dev The position of teamId and teamGrade must be the same in the array.\n For example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\n must be sent at position \"5\" in {teamGrades} array.\n */\n function submitEvaluation(uint256[] calldata teamIds, uint8[] calldata teamGrades)\n external\n evaluationIsOpen\n onlyJudge\n {\n require(teamIds.length == teamGrades.length, \"Length of teams and teamGrades arrays must be equal\");\n require(\n teamIds.length == approvedTeamsCount,\n \"teamsIds and grades do not match the counting of approved teams\"\n );\n require(approvedTeamsCount > 0, \"No approved teams to evaluate\");\n Judge storage judge = judgeByAddress[msg.sender];\n require(!judge.voted, \"Judge already submitted evaluation\");\n for (uint256 i = 0; i < approvedTeamsCount; i++) {\n uint256 teamId = teamIds[i];\n uint8 grade = teamGrades[i];\n // FIXME: check ways to display variables in string messages.\n // require(isValidTeamId(teamId), \"Invalid team id\" + string(teamId));\n // require(isTeamApproved(teamId), \"Team with id \" + string(teamId) + \"is not approved\");\n // require(isValidGrade(grade), \"Invalid grade\" + string(grade) + \"for team id \" + string(teamId));\n require(isValidTeamId(teamId), \"Invalid team id\");\n require(isTeamApproved(teamId), \"Team is not approved\");\n require(isValidGrade(grade), \"Invalid grade\");\n\n Team storage team = teams[teamId];\n team.grade = team.grade.add(grade);\n\n }\n // Updates judge's voting status.\n judge.voted = true;\n emit JudgeVoted(judge.id, judge.judgeAddress);\n }\n\n /**\n @notice Published the ranking results of the contest.\n @dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\n */\n function publishRank()\n external\n registrationIsClosed\n submissionIsClosed\n evaluationIsClosed\n onlyOrganizer\n whenRankNotPublished\n {\n require(approvedTeamsCount > 0, \"No teams registered\");\n Team memory curTeam;\n Team memory tmpFirst;\n Team memory tmpSecond;\n Team memory tmpThird;\n\n for (uint256 i = 0; i < teams.length; i++) {\n curTeam = teams[i];\n if (!curTeam.approved || curTeam.grade < tmpThird.grade) {\n // If team is not approved, or its grade is already lower than third place, mves to the next team.\n continue;\n }\n\n // TODO: Known limitation for this version: Ties or draws are not properly handled, and the last\n // one to be computed will be ranked higher.\n if (curTeam.grade > tmpFirst.grade) {\n tmpThird = tmpSecond;\n tmpSecond = tmpFirst;\n tmpFirst = curTeam;\n } else if (curTeam.grade > tmpSecond.grade) {\n tmpThird = tmpSecond;\n tmpSecond = curTeam;\n } else if (curTeam.grade > tmpThird.grade) {\n tmpThird = curTeam;\n }\n }\n\n firstPlace = tmpFirst;\n secondPlace = tmpSecond;\n thirdPlace = tmpThird;\n rankPublished = true;\n emit WinnerAnnouced(firstPlace.id, firstPlace.teamAddress, firstPlace.grade, 1);\n emit WinnerAnnouced(secondPlace.id, secondPlace.teamAddress, secondPlace.grade, 2);\n emit WinnerAnnouced(thirdPlace.id, thirdPlace.teamAddress, thirdPlace.grade, 3);\n }\n\n /**\n @notice Gets the id of the winner teams.\n @return {uint256} First place's id\n @return {uint256} Second place's id\n @return {uint256} Third place's id\n */\n function getWinnersIds() external view returns (uint256, uint256, uint256) {\n return (firstPlace.id, secondPlace.id, thirdPlace.id);\n }\n\n /**\n @notice Closes the registration process\n @dev Overwritten to add modifier for access control.\n */\n function closeRegistration() external registrationIsOpen onlyOrganizer {\n super._closeRegistration();\n }\n\n /**\n @notice Opens the registration process\n @dev Overwritten to add modifier for access control.\n */\n function openRegistration() external registrationIsClosed onlyOrganizer {\n super._openRegistration();\n }\n\n /**\n @notice Closes the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeSubmission() external submissionIsOpen onlyOrganizer {\n super._closeSubmission();\n }\n\n /**\n @notice Opens the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openSubmission() external submissionIsClosed onlyOrganizer {\n super._openSubmission();\n }\n\n /**\n @notice Closes the evaluation process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeEvaluation() external evaluationIsOpen onlyOrganizer {\n _closeEvaluation();\n }\n\n /**\n @notice Opens the evaluation process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openEvaluation() external evaluationIsClosed onlyOrganizer {\n _openEvaluation();\n }\n\n /**\n @notice Gets the evaluation status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getEvaluationStatus() external view returns (bool) {\n return evaluationEnabled;\n }\n\n ///@dev internal implementation for {closeEvaluation.}\n function _closeEvaluation() internal {\n evaluationEnabled = false;\n emit EvaluationStatusUpdated(evaluationEnabled);\n }\n\n ///@dev internal implementation for {openEvaluation.}\n function _openEvaluation() internal {\n evaluationEnabled = true;\n emit EvaluationStatusUpdated(evaluationEnabled);\n }\n\n /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.\n function _addJudge(address account) internal {\n // TODO: check if can re-add previously removed judges to be added.\n // require(judgeByAddress[account].judgeAddress == address(0));\n super._addJudge(account);\n uint256 newId = judgesInfo.length;\n Judge memory judge = Judge(newId, account, true, false);\n judgesInfo.push(judge);\n judgeByAddress[account] = judge;\n // activeJudgesCount = activeJudgesCount.add(1);\n }\n\n /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.\n function _removeJudge(address account) internal {\n super._removeJudge(account);\n Judge storage judge = judgeByAddress[account];\n judge.active = false;\n // activeJudgesCount = activeJudgesCount.sub(1);\n }\n\n /**\n @notice checks if a grade is valid or not.\n @param grade {uint8} the grade to be evaluated\n @return {bool} true if valid; otherwise false\n */\n function isValidGrade(uint8 grade) internal pure returns (bool) {\n return (grade >= 0 && grade <= 10);\n }\n}\n", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\nimport \"./ContestTeamRegistry.sol\";\nimport \"../roles/ContestRoleManager.sol\";\n\n/**\n @notice Controls the evaluation process by the judges and publishing of final results.\n */\nabstract contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager {\n using SafeMath for uint256;\n\n /// @notice Represetns a judge evaluating the teams in the contest.\n struct Judge {\n uint256 id;\n address judgeAddress;\n bool active;\n bool voted;\n }\n\n // Judge's helpers\n Judge[] internal judgesInfo; // List of judges\n // uint256 internal activeJudgesCount; // Controls active judges (the ones not removed)\n mapping(address => Judge) internal judgeByAddress;\n bool internal evaluationEnabled;\n Team internal firstPlace;\n Team internal secondPlace;\n Team internal thirdPlace;\n bool internal rankPublished;\n\n /// @dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}\n event EvaluationStatusUpdated(bool enabled);\n /// @dev emitted when a judge submits its evaluation.\n event JudgeVoted(uint256 indexed id, address judgeAddress);\n /// @dev emitted when winners are announced.\n event WinnerAnnouced(uint256 teamId, address teamAddress, uint256 finalGrade, uint8 rankPosition);\n\n modifier evaluationIsOpen() {\n require(evaluationEnabled, \"Evaluation is closed\");\n _;\n }\n\n modifier evaluationIsClosed() {\n require(!evaluationEnabled, \"Evaluation is open\");\n _;\n }\n\n modifier whenRankPublished {\n require(rankPublished, \"Rank not published yet\");\n _;\n }\n\n modifier whenRankNotPublished {\n require(!rankPublished, \"Rank already published\");\n _;\n }\n\n ///@dev This class needs to be inherited - internal visibility\n /// @param initialOrganizer Represents the organizer who owns the contest, initially.\n constructor(address initialOrganizer) ContestTeamRegistry() ContestRoleManager(initialOrganizer) {}\n\n /**\n @notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\n teams must be submitted once.\n @param teamIds Array of the ids associated with each team that is going to be evaluated.\n @param teamGrades Array of the grades given by the judge for each team.\n @dev The position of teamId and teamGrade must be the same in the array.\n For example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\n must be sent at position \"5\" in {teamGrades} array.\n */\n function submitEvaluation(uint256[] calldata teamIds, uint8[] calldata teamGrades)\n external\n evaluationIsOpen\n onlyJudge\n {\n require(teamIds.length == teamGrades.length, \"Length of teams and teamGrades arrays must be equal\");\n require(\n teamIds.length == approvedTeamsCount,\n \"teamsIds and grades do not match the counting of approved teams\"\n );\n require(approvedTeamsCount > 0, \"No approved teams to evaluate\");\n Judge storage judge = judgeByAddress[msg.sender];\n require(!judge.voted, \"Judge already submitted evaluation\");\n for (uint256 i = 0; i < approvedTeamsCount; i++) {\n uint256 teamId = teamIds[i];\n uint8 grade = teamGrades[i];\n // FIXME: check ways to display variables in string messages.\n // require(isValidTeamId(teamId), \"Invalid team id\" + string(teamId));\n // require(isTeamApproved(teamId), \"Team with id \" + string(teamId) + \"is not approved\");\n // require(isValidGrade(grade), \"Invalid grade\" + string(grade) + \"for team id \" + string(teamId));\n require(isValidTeamId(teamId), \"Invalid team id\");\n require(isTeamApproved(teamId), \"Team is not approved\");\n require(isValidGrade(grade), \"Invalid grade\");\n\n Team storage team = teams[teamId];\n team.grade = team.grade.add(grade);\n\n }\n // Updates judge's voting status.\n judge.voted = true;\n emit JudgeVoted(judge.id, judge.judgeAddress);\n }\n\n /**\n @notice Published the ranking results of the contest.\n @dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\n */\n function publishRank()\n external\n registrationIsClosed\n submissionIsClosed\n evaluationIsClosed\n onlyOrganizer\n whenRankNotPublished\n {\n require(approvedTeamsCount > 0, \"No teams registered\");\n Team memory curTeam;\n Team memory tmpFirst;\n Team memory tmpSecond;\n Team memory tmpThird;\n\n for (uint256 i = 0; i < teams.length; i++) {\n curTeam = teams[i];\n if (!curTeam.approved || curTeam.grade < tmpThird.grade) {\n // If team is not approved, or its grade is already lower than third place, mves to the next team.\n continue;\n }\n\n // TODO: Known limitation for this version: Ties or draws are not properly handled, and the last\n // one to be computed will be ranked higher.\n if (curTeam.grade > tmpFirst.grade) {\n tmpThird = tmpSecond;\n tmpSecond = tmpFirst;\n tmpFirst = curTeam;\n } else if (curTeam.grade > tmpSecond.grade) {\n tmpThird = tmpSecond;\n tmpSecond = curTeam;\n } else if (curTeam.grade > tmpThird.grade) {\n tmpThird = curTeam;\n }\n }\n\n firstPlace = tmpFirst;\n secondPlace = tmpSecond;\n thirdPlace = tmpThird;\n rankPublished = true;\n emit WinnerAnnouced(firstPlace.id, firstPlace.teamAddress, firstPlace.grade, 1);\n emit WinnerAnnouced(secondPlace.id, secondPlace.teamAddress, secondPlace.grade, 2);\n emit WinnerAnnouced(thirdPlace.id, thirdPlace.teamAddress, thirdPlace.grade, 3);\n }\n\n /**\n @notice Gets the id of the winner teams.\n @return {uint256} First place's id\n @return {uint256} Second place's id\n @return {uint256} Third place's id\n */\n function getWinnersIds() external view returns (uint256, uint256, uint256) {\n return (firstPlace.id, secondPlace.id, thirdPlace.id);\n }\n\n /**\n @notice Closes the registration process\n @dev Overwritten to add modifier for access control.\n */\n function closeRegistration() external override registrationIsOpen onlyOrganizer {\n super._closeRegistration();\n }\n\n /**\n @notice Opens the registration process\n @dev Overwritten to add modifier for access control.\n */\n function openRegistration() external override registrationIsClosed onlyOrganizer {\n super._openRegistration();\n }\n\n /**\n @notice Closes the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeSubmission() external override submissionIsOpen onlyOrganizer {\n super._closeSubmission();\n }\n\n /**\n @notice Opens the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openSubmission() external override submissionIsClosed onlyOrganizer {\n super._openSubmission();\n }\n\n /**\n @notice Closes the evaluation process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeEvaluation() external evaluationIsOpen onlyOrganizer {\n _closeEvaluation();\n }\n\n /**\n @notice Opens the evaluation process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openEvaluation() external evaluationIsClosed onlyOrganizer {\n _openEvaluation();\n }\n\n /**\n @notice Gets the evaluation status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getEvaluationStatus() external view returns (bool) {\n return evaluationEnabled;\n }\n\n ///@dev internal implementation for {closeEvaluation.}\n function _closeEvaluation() internal {\n evaluationEnabled = false;\n emit EvaluationStatusUpdated(evaluationEnabled);\n }\n\n ///@dev internal implementation for {openEvaluation.}\n function _openEvaluation() internal {\n evaluationEnabled = true;\n emit EvaluationStatusUpdated(evaluationEnabled);\n }\n\n /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.\n function _addJudge(address account) internal override {\n // TODO: check if can re-add previously removed judges to be added.\n // require(judgeByAddress[account].judgeAddress == address(0));\n super._addJudge(account);\n uint256 newId = judgesInfo.length;\n Judge memory judge = Judge(newId, account, true, false);\n judgesInfo.push(judge);\n judgeByAddress[account] = judge;\n // activeJudgesCount = activeJudgesCount.add(1);\n }\n\n /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.\n function _removeJudge(address account) internal override {\n super._removeJudge(account);\n Judge storage judge = judgeByAddress[account];\n judge.active = false;\n // activeJudgesCount = activeJudgesCount.sub(1);\n }\n\n /**\n @notice checks if a grade is valid or not.\n @param grade {uint8} the grade to be evaluated\n @return {bool} true if valid; otherwise false\n */\n function isValidGrade(uint8 grade) internal pure returns (bool) {\n return (grade >= 0 && grade <= 10);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "exportedSymbols": { - "ContestBracketRegistry": [648] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 649, + "id": 675, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { "id": 58, - "literals": ["solidity", "^", "0.5", ".0"], + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "40:31:1" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 59, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 4216, - "src": "25:59:1", + "scope": 675, + "sourceUnit": 3815, + "src": "73:51:1", "symbolAliases": [], "unitAlias": "" }, @@ -755,9 +699,9 @@ "file": "./ContestTeamRegistry.sol", "id": 60, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 1699, - "src": "86:35:1", + "scope": 675, + "sourceUnit": 1773, + "src": "126:35:1", "symbolAliases": [], "unitAlias": "" }, @@ -766,81 +710,82 @@ "file": "../roles/ContestRoleManager.sol", "id": 61, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 3196, - "src": "122:41:1", + "scope": 675, + "sourceUnit": 3327, + "src": "162:41:1", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 62, + "id": 63, "name": "ContestTeamRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1698, - "src": "299:19:1", + "referencedDeclaration": 1772, + "src": "348:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamRegistry_$1698", + "typeIdentifier": "t_contract$_ContestTeamRegistry_$1772", "typeString": "contract ContestTeamRegistry" } }, - "id": 63, + "id": 64, "nodeType": "InheritanceSpecifier", - "src": "299:19:1" + "src": "348:19:1" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 64, + "id": 65, "name": "ContestRoleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3195, - "src": "320:18:1", + "referencedDeclaration": 3326, + "src": "369:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$3195", + "typeIdentifier": "t_contract$_ContestRoleManager_$3326", "typeString": "contract ContestRoleManager" } }, - "id": 65, + "id": 66, "nodeType": "InheritanceSpecifier", - "src": "320:18:1" + "src": "369:18:1" } ], - "contractDependencies": [1698, 3195, 3287, 3401], + "contractDependencies": [1772, 3326, 3416, 3532], "contractKind": "contract", - "documentation": "@notice Controls the evaluation process by the judges and publishing of final results.", + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "205:98:1", + "text": "@notice Controls the evaluation process by the judges and publishing of final results." + }, "fullyImplemented": true, - "id": 648, - "linearizedBaseContracts": [648, 3195, 3287, 3401, 1698], + "id": 674, + "linearizedBaseContracts": [674, 3326, 3416, 3532, 1772], "name": "ContestBracketRegistry", "nodeType": "ContractDefinition", "nodes": [ { - "id": 68, + "id": 69, "libraryName": { - "contractScope": null, - "id": 66, + "id": 67, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "351:8:1", + "referencedDeclaration": 3814, + "src": "400:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "345:27:1", + "src": "394:27:1", "typeName": { - "id": 67, + "id": 68, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "364:7:1", + "src": "413:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -849,15 +794,16 @@ }, { "canonicalName": "ContestBracketRegistry.Judge", - "id": 77, + "id": 78, "members": [ { "constant": false, - "id": 70, + "id": 71, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "473:10:1", + "scope": 78, + "src": "522:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -865,25 +811,25 @@ "typeString": "uint256" }, "typeName": { - "id": 69, + "id": 70, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "473:7:1", + "src": "522:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 72, + "id": 73, + "mutability": "mutable", "name": "judgeAddress", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "493:20:1", + "scope": 78, + "src": "542:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -891,26 +837,26 @@ "typeString": "address" }, "typeName": { - "id": 71, + "id": 72, "name": "address", "nodeType": "ElementaryTypeName", - "src": "493:7:1", + "src": "542:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 74, + "id": 75, + "mutability": "mutable", "name": "active", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "523:11:1", + "scope": 78, + "src": "572:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -918,25 +864,25 @@ "typeString": "bool" }, "typeName": { - "id": 73, + "id": 74, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "523:4:1", + "src": "572:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 76, + "id": 77, + "mutability": "mutable", "name": "voted", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "544:10:1", + "scope": 78, + "src": "593:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -944,117 +890,114 @@ "typeString": "bool" }, "typeName": { - "id": 75, + "id": 76, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "544:4:1", + "src": "593:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], "name": "Judge", "nodeType": "StructDefinition", - "scope": 648, - "src": "450:111:1", + "scope": 674, + "src": "499:111:1", "visibility": "public" }, { "constant": false, - "id": 80, + "id": 81, + "mutability": "mutable", "name": "judgesInfo", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "590:27:1", + "scope": 674, + "src": "639:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge[]" }, "typeName": { "baseType": { - "contractScope": null, - "id": 78, + "id": 79, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "590:5:1", + "referencedDeclaration": 78, + "src": "639:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "id": 79, - "length": null, + "id": 80, "nodeType": "ArrayTypeName", - "src": "590:7:1", + "src": "639:7:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 84, + "id": 85, + "mutability": "mutable", "name": "judgeByAddress", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "733:49:1", + "scope": 674, + "src": "782:49:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge)" }, "typeName": { - "id": 83, + "id": 84, "keyType": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "741:7:1", + "src": "790:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "733:25:1", + "src": "782:25:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge)" }, "valueType": { - "contractScope": null, - "id": 82, + "id": 83, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "752:5:1", + "referencedDeclaration": 78, + "src": "801:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 86, + "id": 87, + "mutability": "mutable", "name": "evaluationEnabled", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "788:31:1", + "scope": 674, + "src": "837:31:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1062,109 +1005,106 @@ "typeString": "bool" }, "typeName": { - "id": 85, + "id": 86, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "788:4:1", + "src": "837:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 88, + "id": 89, + "mutability": "mutable", "name": "firstPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "825:24:1", + "scope": 674, + "src": "874:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 87, + "id": 88, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "825:4:1", + "referencedDeclaration": 1134, + "src": "874:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 90, + "id": 91, + "mutability": "mutable", "name": "secondPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "855:25:1", + "scope": 674, + "src": "904:25:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 89, + "id": 90, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "855:4:1", + "referencedDeclaration": 1134, + "src": "904:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 92, + "id": 93, + "mutability": "mutable", "name": "thirdPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "886:24:1", + "scope": 674, + "src": "935:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 91, + "id": 92, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "886:4:1", + "referencedDeclaration": 1134, + "src": "935:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 94, + "id": 95, + "mutability": "mutable", "name": "rankPublished", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "916:27:1", + "scope": 674, + "src": "965:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1172,36 +1112,41 @@ "typeString": "bool" }, "typeName": { - "id": 93, + "id": 94, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "916:4:1", + "src": "965:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}", - "id": 98, + "documentation": { + "id": 96, + "nodeType": "StructuredDocumentation", + "src": "999:103:1", + "text": "@dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}" + }, + "id": 100, "name": "EvaluationStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 97, + "id": 99, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 96, + "id": 98, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1088:12:1", + "scope": 100, + "src": "1137:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1209,41 +1154,46 @@ "typeString": "bool" }, "typeName": { - "id": 95, + "id": 97, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1088:4:1", + "src": "1137:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1087:14:1" + "src": "1136:14:1" }, - "src": "1058:44:1" + "src": "1107:44:1" }, { "anonymous": false, - "documentation": "@dev emitted when a judge submits its evaluation.", - "id": 104, + "documentation": { + "id": 101, + "nodeType": "StructuredDocumentation", + "src": "1156:53:1", + "text": "@dev emitted when a judge submits its evaluation." + }, + "id": 107, "name": "JudgeVoted", "nodeType": "EventDefinition", "parameters": { - "id": 103, + "id": 106, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 103, "indexed": true, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 104, - "src": "1182:18:1", + "scope": 107, + "src": "1231:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1251,26 +1201,26 @@ "typeString": "uint256" }, "typeName": { - "id": 99, + "id": 102, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1182:7:1", + "src": "1231:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 102, + "id": 105, "indexed": false, + "mutability": "mutable", "name": "judgeAddress", "nodeType": "VariableDeclaration", - "scope": 104, - "src": "1202:20:1", + "scope": 107, + "src": "1251:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1278,42 +1228,47 @@ "typeString": "address" }, "typeName": { - "id": 101, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1202:7:1", + "src": "1251:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1181:42:1" + "src": "1230:42:1" }, - "src": "1165:59:1" + "src": "1214:59:1" }, { "anonymous": false, - "documentation": "@dev emitted when winners are announced.", - "id": 114, + "documentation": { + "id": 108, + "nodeType": "StructuredDocumentation", + "src": "1278:44:1", + "text": "@dev emitted when winners are announced." + }, + "id": 118, "name": "WinnerAnnouced", "nodeType": "EventDefinition", "parameters": { - "id": 113, + "id": 117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 106, + "id": 110, "indexed": false, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1299:14:1", + "scope": 118, + "src": "1348:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1321,26 +1276,26 @@ "typeString": "uint256" }, "typeName": { - "id": 105, + "id": 109, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1299:7:1", + "src": "1348:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 108, + "id": 112, "indexed": false, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1315:19:1", + "scope": 118, + "src": "1364:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1348,27 +1303,27 @@ "typeString": "address" }, "typeName": { - "id": 107, + "id": 111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1315:7:1", + "src": "1364:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 110, + "id": 114, "indexed": false, + "mutability": "mutable", "name": "finalGrade", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1336:18:1", + "scope": 118, + "src": "1385:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1376,26 +1331,26 @@ "typeString": "uint256" }, "typeName": { - "id": 109, + "id": 113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1336:7:1", + "src": "1385:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 112, + "id": 116, "indexed": false, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1356:18:1", + "scope": 118, + "src": "1405:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1403,58 +1358,53 @@ "typeString": "uint8" }, "typeName": { - "id": 111, + "id": 115, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1356:5:1", + "src": "1405:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "src": "1298:77:1" + "src": "1347:77:1" }, - "src": "1278:98:1" + "src": "1327:98:1" }, { "body": { - "id": 122, + "id": 126, "nodeType": "Block", - "src": "1410:78:1", + "src": "1459:78:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 117, + "id": 121, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1428:17:1", + "referencedDeclaration": 87, + "src": "1477:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4576616c756174696f6e20697320636c6f736564", - "id": 118, + "id": 122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1447:22:1", - "subdenomination": null, + "src": "1496:22:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_00789d9793b7ca39eb69d1cdbc1dcc8c0bcd2c57940af6d84925549116f186b8", "typeString": "literal_string \"Evaluation is closed\"" @@ -1473,18 +1423,18 @@ "typeString": "literal_string \"Evaluation is closed\"" } ], - "id": 116, + "id": 120, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1420:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1469:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 119, + "id": 123, "isConstant": false, "isLValue": false, "isPure": false, @@ -1492,49 +1442,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1420:50:1", + "src": "1469:50:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 120, + "id": 124, "nodeType": "ExpressionStatement", - "src": "1420:50:1" + "src": "1469:50:1" }, { - "id": 121, + "id": 125, "nodeType": "PlaceholderStatement", - "src": "1480:1:1" + "src": "1529:1:1" } ] }, - "documentation": null, - "id": 123, + "id": 127, "name": "evaluationIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 115, + "id": 119, "nodeType": "ParameterList", "parameters": [], - "src": "1407:2:1" + "src": "1456:2:1" }, - "src": "1382:106:1", + "src": "1431:106:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 132, + "id": 136, "nodeType": "Block", - "src": "1524:77:1", + "src": "1573:77:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 127, + "id": 131, "isConstant": false, "isLValue": false, "isPure": false, @@ -1542,15 +1491,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1542:18:1", + "src": "1591:18:1", "subExpression": { - "argumentTypes": null, - "id": 126, + "id": 130, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1543:17:1", + "referencedDeclaration": 87, + "src": "1592:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1562,17 +1510,15 @@ } }, { - "argumentTypes": null, "hexValue": "4576616c756174696f6e206973206f70656e", - "id": 128, + "id": 132, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1562:20:1", - "subdenomination": null, + "src": "1611:20:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ed5f1534ba0f019f43d1be7f70a2e4d7e189df891ef0fc649f71ce432cb31327", "typeString": "literal_string \"Evaluation is open\"" @@ -1591,18 +1537,18 @@ "typeString": "literal_string \"Evaluation is open\"" } ], - "id": 125, + "id": 129, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1534:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1583:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 129, + "id": 133, "isConstant": false, "isLValue": false, "isPure": false, @@ -1610,71 +1556,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1534:49:1", + "src": "1583:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 130, + "id": 134, "nodeType": "ExpressionStatement", - "src": "1534:49:1" + "src": "1583:49:1" }, { - "id": 131, + "id": 135, "nodeType": "PlaceholderStatement", - "src": "1593:1:1" + "src": "1642:1:1" } ] }, - "documentation": null, - "id": 133, + "id": 137, "name": "evaluationIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 124, + "id": 128, "nodeType": "ParameterList", "parameters": [], - "src": "1521:2:1" + "src": "1570:2:1" }, - "src": "1494:107:1", + "src": "1543:107:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 141, + "id": 145, "nodeType": "Block", - "src": "1634:76:1", + "src": "1683:76:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 136, + "id": 140, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "1652:13:1", + "referencedDeclaration": 95, + "src": "1701:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "52616e6b206e6f74207075626c697368656420796574", - "id": 137, + "id": 141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1667:24:1", - "subdenomination": null, + "src": "1716:24:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a27b3462abe6c8e0fcaa8553a654854ac395de97292872c00ef24dd0dd2e14f1", "typeString": "literal_string \"Rank not published yet\"" @@ -1693,18 +1636,18 @@ "typeString": "literal_string \"Rank not published yet\"" } ], - "id": 135, + "id": 139, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1644:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1693:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 138, + "id": 142, "isConstant": false, "isLValue": false, "isPure": false, @@ -1712,49 +1655,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1644:48:1", + "src": "1693:48:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 139, + "id": 143, "nodeType": "ExpressionStatement", - "src": "1644:48:1" + "src": "1693:48:1" }, { - "id": 140, + "id": 144, "nodeType": "PlaceholderStatement", - "src": "1702:1:1" + "src": "1751:1:1" } ] }, - "documentation": null, - "id": 142, + "id": 146, "name": "whenRankPublished", "nodeType": "ModifierDefinition", "parameters": { - "id": 134, + "id": 138, "nodeType": "ParameterList", "parameters": [], - "src": "1634:0:1" + "src": "1683:0:1" }, - "src": "1607:103:1", + "src": "1656:103:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 151, + "id": 155, "nodeType": "Block", - "src": "1746:77:1", + "src": "1795:77:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 146, + "id": 150, "isConstant": false, "isLValue": false, "isPure": false, @@ -1762,15 +1704,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1764:14:1", + "src": "1813:14:1", "subExpression": { - "argumentTypes": null, - "id": 145, + "id": 149, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "1765:13:1", + "referencedDeclaration": 95, + "src": "1814:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1782,17 +1723,15 @@ } }, { - "argumentTypes": null, "hexValue": "52616e6b20616c7265616479207075626c6973686564", - "id": 147, + "id": 151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1780:24:1", - "subdenomination": null, + "src": "1829:24:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffd0869df43b7506d49e44ed3163de48ff71bb77e0ec6d9725c8f2369908fc7a", "typeString": "literal_string \"Rank already published\"" @@ -1811,18 +1750,18 @@ "typeString": "literal_string \"Rank already published\"" } ], - "id": 144, + "id": 148, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1756:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1805:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 148, + "id": 152, "isConstant": false, "isLValue": false, "isPure": false, @@ -1830,114 +1769,118 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1756:49:1", + "src": "1805:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 149, + "id": 153, "nodeType": "ExpressionStatement", - "src": "1756:49:1" + "src": "1805:49:1" }, { - "id": 150, + "id": 154, "nodeType": "PlaceholderStatement", - "src": "1815:1:1" + "src": "1864:1:1" } ] }, - "documentation": null, - "id": 152, + "id": 156, "name": "whenRankNotPublished", "nodeType": "ModifierDefinition", "parameters": { - "id": 143, + "id": 147, "nodeType": "ParameterList", "parameters": [], - "src": "1746:0:1" + "src": "1795:0:1" }, - "src": "1716:107:1", + "src": "1765:107:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 162, + "id": 167, "nodeType": "Block", - "src": "2092:2:1", + "src": "2132:2:1", "statements": [] }, - "documentation": "@dev This class needs to be inherited - internal visibility\n @param initialOrganizer Represents the organizer who owns the contest, initially.", - "id": 163, + "documentation": { + "id": 157, + "nodeType": "StructuredDocumentation", + "src": "1878:152:1", + "text": "@dev This class needs to be inherited - internal visibility\n @param initialOrganizer Represents the organizer who owns the contest, initially." + }, + "id": 168, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 157, + "id": 162, "modifierName": { - "argumentTypes": null, - "id": 156, + "id": 161, "name": "ContestTeamRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "2033:19:1", + "referencedDeclaration": 1772, + "src": "2073:19:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1698_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1772_$", "typeString": "type(contract ContestTeamRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "2033:21:1" + "src": "2073:21:1" }, { "arguments": [ { - "argumentTypes": null, - "id": 159, + "id": 164, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "2074:16:1", + "referencedDeclaration": 159, + "src": "2114:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 160, + "id": 165, "modifierName": { - "argumentTypes": null, - "id": 158, + "id": 163, "name": "ContestRoleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "2055:18:1", + "referencedDeclaration": 3326, + "src": "2095:18:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3195_$", + "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3326_$", "typeString": "type(contract ContestRoleManager)" } }, "nodeType": "ModifierInvocation", - "src": "2055:36:1" + "src": "2095:36:1" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 155, + "id": 160, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 159, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 163, - "src": "1998:24:1", + "scope": 168, + "src": "2047:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1945,79 +1888,73 @@ "typeString": "address" }, "typeName": { - "id": 153, + "id": 158, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1998:7:1", + "src": "2047:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1997:26:1" + "src": "2046:26:1" }, "returnParameters": { - "id": 161, + "id": 166, "nodeType": "ParameterList", "parameters": [], - "src": "2092:0:1" + "src": "2132:0:1" }, - "scope": 648, - "src": "1986:108:1", + "scope": 674, + "src": "2035:99:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 288, + "id": 294, "nodeType": "Block", - "src": "2850:1408:1", + "src": "2890:1408:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 181, + "id": 187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 177, + "id": 183, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "2868:7:1", + "referencedDeclaration": 172, + "src": "2908:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 178, + "id": 184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2868:14:1", + "src": "2908:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2026,52 +1963,47 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 179, + "id": 185, "name": "teamGrades", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2886:10:1", + "referencedDeclaration": 175, + "src": "2926:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", "typeString": "uint8[] calldata" } }, - "id": 180, + "id": 186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2886:17:1", + "src": "2926:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2868:35:1", + "src": "2908:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c", - "id": 182, + "id": 188, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2905:53:1", - "subdenomination": null, + "src": "2945:53:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a3ec6d81c01ff486e55a40c83e57bf8a6853c1b35af580620f15935af71d3d7", "typeString": "literal_string \"Length of teams and teamGrades arrays must be equal\"" @@ -2090,18 +2022,18 @@ "typeString": "literal_string \"Length of teams and teamGrades arrays must be equal\"" } ], - "id": 176, + "id": 182, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2860:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 183, + "id": 189, "isConstant": false, "isLValue": false, "isPure": false, @@ -2109,55 +2041,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2860:99:1", + "src": "2900:99:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 190, "nodeType": "ExpressionStatement", - "src": "2860:99:1" + "src": "2900:99:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 189, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 186, + "id": 192, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "2990:7:1", + "referencedDeclaration": 172, + "src": "3030:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 187, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2990:14:1", + "src": "3030:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2166,36 +2094,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 188, + "id": 194, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3008:18:1", + "referencedDeclaration": 1143, + "src": "3048:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2990:36:1", + "src": "3030:36:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "7465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d73", - "id": 190, + "id": 196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3040:65:1", - "subdenomination": null, + "src": "3080:65:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_996798abcc7c7c4b0e9f436c44f7c51508aad3a7327477d396fbb4e0747dd1b4", "typeString": "literal_string \"teamsIds and grades do not match the counting of approved teams\"" @@ -2214,18 +2139,18 @@ "typeString": "literal_string \"teamsIds and grades do not match the counting of approved teams\"" } ], - "id": 185, + "id": 191, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2969:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3009:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 191, + "id": 197, "isConstant": false, "isLValue": false, "isPure": false, @@ -2233,39 +2158,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2969:146:1", + "src": "3009:146:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 192, + "id": 198, "nodeType": "ExpressionStatement", - "src": "2969:146:1" + "src": "3009:146:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 196, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 194, + "id": 200, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3133:18:1", + "referencedDeclaration": 1143, + "src": "3173:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2274,41 +2197,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 195, + "id": 201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3154:1:1", - "subdenomination": null, + "src": "3194:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3133:22:1", + "src": "3173:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f20617070726f766564207465616d7320746f206576616c75617465", - "id": 197, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3157:31:1", - "subdenomination": null, + "src": "3197:31:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9aeb6c3343c86ca073b3c2345ba58e0ddde78661bff93d49f1be25130f04f3", "typeString": "literal_string \"No approved teams to evaluate\"" @@ -2327,18 +2246,18 @@ "typeString": "literal_string \"No approved teams to evaluate\"" } ], - "id": 193, + "id": 199, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3125:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3165:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 198, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -2346,89 +2265,84 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3125:64:1", + "src": "3165:64:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 199, + "id": 205, "nodeType": "ExpressionStatement", - "src": "3125:64:1" + "src": "3165:64:1" }, { - "assignments": [201], + "assignments": [207], "declarations": [ { "constant": false, - "id": 201, + "id": 207, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 288, - "src": "3199:19:1", + "scope": 294, + "src": "3239:19:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 200, + "id": 206, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "3199:5:1", + "referencedDeclaration": 78, + "src": "3239:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 206, + "id": 212, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 202, + "id": 208, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3221:14:1", + "referencedDeclaration": 85, + "src": "3261:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 205, + "id": 211, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 203, + "id": 209, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3236:3:1", + "referencedDeclaration": 4294967281, + "src": "3276:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 204, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:10:1", + "src": "3276:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2439,22 +2353,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3221:26:1", + "src": "3261:26:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3199:48:1" + "src": "3239:48:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 210, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, @@ -2462,31 +2374,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3265:12:1", + "src": "3305:12:1", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 208, + "id": 214, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "3266:5:1", + "referencedDeclaration": 207, + "src": "3306:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 209, + "id": 215, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 76, - "src": "3266:11:1", + "referencedDeclaration": 77, + "src": "3306:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2498,17 +2408,15 @@ } }, { - "argumentTypes": null, "hexValue": "4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e", - "id": 211, + "id": 217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3279:36:1", - "subdenomination": null, + "src": "3319:36:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3e98dce088ce9649d9093074c643a5f49a960b094be13034ffe994e4fedc57c7", "typeString": "literal_string \"Judge already submitted evaluation\"" @@ -2527,18 +2435,18 @@ "typeString": "literal_string \"Judge already submitted evaluation\"" } ], - "id": 207, + "id": 213, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3257:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3297:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 212, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, @@ -2546,32 +2454,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3257:59:1", + "src": "3297:59:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 213, + "id": 219, "nodeType": "ExpressionStatement", - "src": "3257:59:1" + "src": "3297:59:1" }, { "body": { - "id": 273, + "id": 279, "nodeType": "Block", - "src": "3375:752:1", + "src": "3415:752:1", "statements": [ { - "assignments": [225], + "assignments": [231], "declarations": [ { "constant": false, - "id": 225, + "id": 231, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "3389:14:1", + "scope": 279, + "src": "3429:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2579,44 +2489,40 @@ "typeString": "uint256" }, "typeName": { - "id": 224, + "id": 230, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3389:7:1", + "src": "3429:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 229, + "id": 235, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 226, + "id": 232, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "3406:7:1", + "referencedDeclaration": 172, + "src": "3446:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 228, + "id": 234, "indexExpression": { - "argumentTypes": null, - "id": 227, + "id": 233, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3414:1:1", + "referencedDeclaration": 221, + "src": "3454:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2627,25 +2533,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3406:10:1", + "src": "3446:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3389:27:1" + "src": "3429:27:1" }, { - "assignments": [231], + "assignments": [237], "declarations": [ { "constant": false, - "id": 231, + "id": 237, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "3430:11:1", + "scope": 279, + "src": "3470:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2653,44 +2560,40 @@ "typeString": "uint8" }, "typeName": { - "id": 230, + "id": 236, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3430:5:1", + "src": "3470:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "id": 235, + "id": 241, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 232, + "id": 238, "name": "teamGrades", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "3444:10:1", + "referencedDeclaration": 175, + "src": "3484:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", "typeString": "uint8[] calldata" } }, - "id": 234, + "id": 240, "indexExpression": { - "argumentTypes": null, - "id": 233, + "id": 239, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3455:1:1", + "referencedDeclaration": 221, + "src": "3495:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2701,30 +2604,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3444:13:1", + "src": "3484:13:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "3430:27:1" + "src": "3470:27:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 238, + "id": 244, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3864:6:1", + "referencedDeclaration": 231, + "src": "3904:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2738,18 +2638,18 @@ "typeString": "uint256" } ], - "id": 237, + "id": 243, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "3850:13:1", + "referencedDeclaration": 1745, + "src": "3890:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 239, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, @@ -2757,24 +2657,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3850:21:1", + "src": "3890:21:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207465616d206964", - "id": 240, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3873:17:1", - "subdenomination": null, + "src": "3913:17:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_571f2ed6e8a5538ea54204f561cb7ffcc7bba9fb904df91289afa3cee0194bbc", "typeString": "literal_string \"Invalid team id\"" @@ -2793,18 +2692,18 @@ "typeString": "literal_string \"Invalid team id\"" } ], - "id": 236, + "id": 242, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3842:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3882:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 241, + "id": 247, "isConstant": false, "isLValue": false, "isPure": false, @@ -2812,31 +2711,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3842:49:1", + "src": "3882:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 242, + "id": 248, "nodeType": "ExpressionStatement", - "src": "3842:49:1" + "src": "3882:49:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 245, + "id": 251, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3928:6:1", + "referencedDeclaration": 231, + "src": "3968:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2850,18 +2747,18 @@ "typeString": "uint256" } ], - "id": 244, + "id": 250, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "3913:14:1", + "referencedDeclaration": 1771, + "src": "3953:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 246, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, @@ -2869,24 +2766,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3913:22:1", + "src": "3953:22:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420617070726f766564", - "id": 247, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3937:22:1", - "subdenomination": null, + "src": "3977:22:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_93b89bf7b168f7f31c6e9087225242369de79bf9b7b75b2a443371536dcc9123", "typeString": "literal_string \"Team is not approved\"" @@ -2905,18 +2801,18 @@ "typeString": "literal_string \"Team is not approved\"" } ], - "id": 243, + "id": 249, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3905:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3945:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 248, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2924,31 +2820,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3905:55:1", + "src": "3945:55:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 249, + "id": 255, "nodeType": "ExpressionStatement", - "src": "3905:55:1" + "src": "3945:55:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 252, + "id": 258, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "3995:5:1", + "referencedDeclaration": 237, + "src": "4035:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2962,18 +2856,18 @@ "typeString": "uint8" } ], - "id": 251, + "id": 257, "name": "isValidGrade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "3982:12:1", + "referencedDeclaration": 673, + "src": "4022:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", "typeString": "function (uint8) pure returns (bool)" } }, - "id": 253, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -2981,24 +2875,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3982:19:1", + "src": "4022:19:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964206772616465", - "id": 254, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4003:15:1", - "subdenomination": null, + "src": "4043:15:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a548bc4ca802e7679af112e13c6a9429b1cdef7e1361d4e5f453f2271b2cc93f", "typeString": "literal_string \"Invalid grade\"" @@ -3017,18 +2910,18 @@ "typeString": "literal_string \"Invalid grade\"" } ], - "id": 250, + "id": 256, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3974:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4014:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 255, + "id": 261, "isConstant": false, "isLValue": false, "isPure": false, @@ -3036,73 +2929,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3974:45:1", + "src": "4014:45:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 256, + "id": 262, "nodeType": "ExpressionStatement", - "src": "3974:45:1" + "src": "4014:45:1" }, { - "assignments": [258], + "assignments": [264], "declarations": [ { "constant": false, - "id": 258, + "id": 264, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "4034:17:1", + "scope": 279, + "src": "4074:17:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 257, + "id": 263, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4034:4:1", + "referencedDeclaration": 1134, + "src": "4074:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 262, + "id": 268, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 259, + "id": 265, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4054:5:1", + "referencedDeclaration": 1141, + "src": "4094:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 261, + "id": 267, "indexExpression": { - "argumentTypes": null, - "id": 260, + "id": 266, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "4060:6:1", + "referencedDeclaration": 231, + "src": "4100:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3113,47 +3003,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4054:13:1", + "src": "4094:13:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "4034:33:1" + "src": "4074:33:1" }, { "expression": { - "argumentTypes": null, - "id": 271, + "id": 277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 263, + "id": 269, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "4081:4:1", + "referencedDeclaration": 264, + "src": "4121:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 265, + "id": 271, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4081:10:1", + "referencedDeclaration": 1133, + "src": "4121:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3162,16 +3049,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 269, + "id": 275, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "4109:5:1", + "referencedDeclaration": 237, + "src": "4149:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3186,49 +3071,47 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 266, + "id": 272, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "4094:4:1", + "referencedDeclaration": 264, + "src": "4134:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 267, + "id": 273, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4094:10:1", + "referencedDeclaration": 1133, + "src": "4134:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 268, + "id": 274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "4094:14:1", + "referencedDeclaration": 3647, + "src": "4134:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 270, + "id": 276, "isConstant": false, "isLValue": false, "isPure": false, @@ -3236,43 +3119,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4094:21:1", + "src": "4134:21:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4081:34:1", + "src": "4121:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 272, + "id": 278, "nodeType": "ExpressionStatement", - "src": "4081:34:1" + "src": "4121:34:1" } ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 220, + "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 218, + "id": 224, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3346:1:1", + "referencedDeclaration": 221, + "src": "3386:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3281,35 +3163,35 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, - "id": 219, + "id": 225, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3350:18:1", + "referencedDeclaration": 1143, + "src": "3390:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3346:22:1", + "src": "3386:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 274, + "id": 280, "initializationExpression": { - "assignments": [215], + "assignments": [221], "declarations": [ { "constant": false, - "id": 215, + "id": 221, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3331:9:1", + "scope": 280, + "src": "3371:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3317,32 +3199,29 @@ "typeString": "uint256" }, "typeName": { - "id": 214, + "id": 220, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3331:7:1", + "src": "3371:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 217, + "id": 223, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 216, + "id": 222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3343:1:1", - "subdenomination": null, + "src": "3383:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3350,12 +3229,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3331:13:1" + "src": "3371:13:1" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 222, + "id": 228, "isConstant": false, "isLValue": false, "isPure": false, @@ -3363,15 +3241,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3370:3:1", + "src": "3410:3:1", "subExpression": { - "argumentTypes": null, - "id": 221, + "id": 227, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3370:1:1", + "referencedDeclaration": 221, + "src": "3410:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3382,45 +3259,42 @@ "typeString": "uint256" } }, - "id": 223, + "id": 229, "nodeType": "ExpressionStatement", - "src": "3370:3:1" + "src": "3410:3:1" }, "nodeType": "ForStatement", - "src": "3326:801:1" + "src": "3366:801:1" }, { "expression": { - "argumentTypes": null, - "id": 279, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 275, + "id": 281, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4178:5:1", + "referencedDeclaration": 207, + "src": "4218:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 277, + "id": 283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 76, - "src": "4178:11:1", + "referencedDeclaration": 77, + "src": "4218:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3429,90 +3303,83 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 278, + "id": 284, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4192:4:1", - "subdenomination": null, + "src": "4232:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4178:18:1", + "src": "4218:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 280, + "id": 286, "nodeType": "ExpressionStatement", - "src": "4178:18:1" + "src": "4218:18:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 282, + "id": 288, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4222:5:1", + "referencedDeclaration": 207, + "src": "4262:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 283, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 70, - "src": "4222:8:1", + "referencedDeclaration": 71, + "src": "4262:8:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 284, + "id": 290, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4232:5:1", + "referencedDeclaration": 207, + "src": "4272:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 285, + "id": 291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "judgeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "4232:18:1", + "referencedDeclaration": 73, + "src": "4272:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3530,18 +3397,18 @@ "typeString": "address" } ], - "id": 281, + "id": 287, "name": "JudgeVoted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4211:10:1", + "referencedDeclaration": 107, + "src": "4251:10:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 286, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -3549,75 +3416,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4211:40:1", + "src": "4251:40:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 287, + "id": 293, "nodeType": "EmitStatement", - "src": "4206:45:1" + "src": "4246:45:1" } ] }, - "documentation": "@notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\nteams must be submitted once.\n@param teamIds Array of the ids associated with each team that is going to be evaluated.\n@param teamGrades Array of the grades given by the judge for each team.\n@dev The position of teamId and teamGrade must be the same in the array.\nFor example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\nmust be sent at position \"5\" in {teamGrades} array.", - "id": 289, + "documentation": { + "id": 169, + "nodeType": "StructuredDocumentation", + "src": "2140:598:1", + "text": "@notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\nteams must be submitted once.\n@param teamIds Array of the ids associated with each team that is going to be evaluated.\n@param teamGrades Array of the grades given by the judge for each team.\n@dev The position of teamId and teamGrade must be the same in the array.\nFor example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\nmust be sent at position \"5\" in {teamGrades} array." + }, + "functionSelector": "3e091f64", + "id": 295, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 172, + "id": 178, "modifierName": { - "argumentTypes": null, - "id": 171, + "id": 177, "name": "evaluationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2811:16:1", + "referencedDeclaration": 127, + "src": "2851:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2811:16:1" + "src": "2851:16:1" }, { - "arguments": null, - "id": 174, + "id": 180, "modifierName": { - "argumentTypes": null, - "id": 173, + "id": 179, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "2836:9:1", + "referencedDeclaration": 3355, + "src": "2876:9:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2836:9:1" + "src": "2876:9:1" } ], "name": "submitEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 170, + "id": 176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 166, + "id": 172, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2729:26:1", + "scope": 295, + "src": "2769:26:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3626,34 +3497,33 @@ }, "typeName": { "baseType": { - "id": 164, + "id": 170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2729:7:1", + "src": "2769:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 165, - "length": null, + "id": 171, "nodeType": "ArrayTypeName", - "src": "2729:9:1", + "src": "2769:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 169, + "id": 175, + "mutability": "mutable", "name": "teamGrades", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2757:27:1", + "scope": 295, + "src": "2797:27:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -3662,71 +3532,66 @@ }, "typeName": { "baseType": { - "id": 167, + "id": 173, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2757:5:1", + "src": "2797:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 168, - "length": null, + "id": 174, "nodeType": "ArrayTypeName", - "src": "2757:7:1", + "src": "2797:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2728:57:1" + "src": "2768:57:1" }, "returnParameters": { - "id": 175, + "id": 181, "nodeType": "ParameterList", "parameters": [], - "src": "2850:0:1" + "src": "2890:0:1" }, - "scope": 648, - "src": "2703:1555:1", + "scope": 674, + "src": "2743:1555:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 443, + "id": 450, "nodeType": "Block", - "src": "4604:1478:1", + "src": "4644:1478:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 305, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 303, + "id": 310, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "4622:18:1", + "referencedDeclaration": 1143, + "src": "4662:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3735,41 +3600,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 304, + "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4643:1:1", - "subdenomination": null, + "src": "4683:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4622:22:1", + "src": "4662:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f207465616d732072656769737465726564", - "id": 306, + "id": 313, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4646:21:1", - "subdenomination": null, + "src": "4686:21:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_85d19e51bab406e77039d57c5dfda7be4b76fdb99d80c2183e26b8e3147c9f38", "typeString": "literal_string \"No teams registered\"" @@ -3788,18 +3649,18 @@ "typeString": "literal_string \"No teams registered\"" } ], - "id": 302, + "id": 309, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4614:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4654:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 307, + "id": 314, "isConstant": false, "isLValue": false, "isPure": false, @@ -3807,217 +3668,205 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4614:54:1", + "src": "4654:54:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 308, + "id": 315, "nodeType": "ExpressionStatement", - "src": "4614:54:1" + "src": "4654:54:1" }, { - "assignments": [310], + "assignments": [317], "declarations": [ { "constant": false, - "id": 310, + "id": 317, + "mutability": "mutable", "name": "curTeam", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4678:19:1", + "scope": 450, + "src": "4718:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 309, + "id": 316, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4678:4:1", + "referencedDeclaration": 1134, + "src": "4718:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 311, - "initialValue": null, + "id": 318, "nodeType": "VariableDeclarationStatement", - "src": "4678:19:1" + "src": "4718:19:1" }, { - "assignments": [313], + "assignments": [320], "declarations": [ { "constant": false, - "id": 313, + "id": 320, + "mutability": "mutable", "name": "tmpFirst", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4707:20:1", + "scope": 450, + "src": "4747:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 312, + "id": 319, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4707:4:1", + "referencedDeclaration": 1134, + "src": "4747:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 314, - "initialValue": null, + "id": 321, "nodeType": "VariableDeclarationStatement", - "src": "4707:20:1" + "src": "4747:20:1" }, { - "assignments": [316], + "assignments": [323], "declarations": [ { "constant": false, - "id": 316, + "id": 323, + "mutability": "mutable", "name": "tmpSecond", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4737:21:1", + "scope": 450, + "src": "4777:21:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 315, + "id": 322, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4737:4:1", + "referencedDeclaration": 1134, + "src": "4777:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 317, - "initialValue": null, + "id": 324, "nodeType": "VariableDeclarationStatement", - "src": "4737:21:1" + "src": "4777:21:1" }, { - "assignments": [319], + "assignments": [326], "declarations": [ { "constant": false, - "id": 319, + "id": 326, + "mutability": "mutable", "name": "tmpThird", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4768:20:1", + "scope": 450, + "src": "4808:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 318, + "id": 325, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4768:4:1", + "referencedDeclaration": 1134, + "src": "4808:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 320, - "initialValue": null, + "id": 327, "nodeType": "VariableDeclarationStatement", - "src": "4768:20:1" + "src": "4808:20:1" }, { "body": { - "id": 395, + "id": 402, "nodeType": "Block", - "src": "4842:838:1", + "src": "4882:838:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 336, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 332, + "id": 339, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4856:7:1", + "referencedDeclaration": 317, + "src": "4896:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 333, + "id": 340, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4866:5:1", + "referencedDeclaration": 1141, + "src": "4906:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 335, + "id": 342, "indexExpression": { - "argumentTypes": null, - "id": 334, + "id": 341, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4872:1:1", + "referencedDeclaration": 329, + "src": "4912:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4028,37 +3877,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4866:8:1", + "src": "4906:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "src": "4856:18:1", + "src": "4896:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 337, + "id": 344, "nodeType": "ExpressionStatement", - "src": "4856:18:1" + "src": "4896:18:1" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 346, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 340, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -4066,31 +3913,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4892:17:1", + "src": "4932:17:1", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 338, + "id": 345, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4893:7:1", + "referencedDeclaration": 317, + "src": "4933:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 339, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "4893:16:1", + "referencedDeclaration": 1131, + "src": "4933:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4104,40 +3949,37 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 345, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 341, + "id": 348, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4913:7:1", + "referencedDeclaration": 317, + "src": "4953:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 342, + "id": 349, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4913:13:1", + "referencedDeclaration": 1133, + "src": "4953:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4146,99 +3988,93 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 343, + "id": 350, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "4929:8:1", + "referencedDeclaration": 326, + "src": "4969:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 344, + "id": 351, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4929:14:1", + "referencedDeclaration": 1133, + "src": "4969:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4913:30:1", + "src": "4953:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4892:51:1", + "src": "4932:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 349, + "id": 356, "nodeType": "IfStatement", - "src": "4888:213:1", + "src": "4928:213:1", "trueBody": { - "id": 348, + "id": 355, "nodeType": "Block", - "src": "4945:156:1", + "src": "4985:156:1", "statements": [ { - "id": 347, + "id": 354, "nodeType": "Continue", - "src": "5078:8:1" + "src": "5118:8:1" } ] } }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 354, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 350, + "id": 357, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5285:7:1", + "referencedDeclaration": 317, + "src": "5325:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 351, + "id": 358, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5285:13:1", + "referencedDeclaration": 1133, + "src": "5325:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4247,35 +4083,33 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 352, + "id": 359, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5301:8:1", + "referencedDeclaration": 320, + "src": "5341:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 353, + "id": 360, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5301:14:1", + "referencedDeclaration": 1133, + "src": "5341:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5285:30:1", + "src": "5325:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4283,40 +4117,37 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 372, + "id": 379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 368, + "id": 375, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5454:7:1", + "referencedDeclaration": 317, + "src": "5494:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 369, + "id": 376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5454:13:1", + "referencedDeclaration": 1133, + "src": "5494:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4325,35 +4156,33 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 370, + "id": 377, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5470:9:1", + "referencedDeclaration": 323, + "src": "5510:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 371, + "id": 378, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5470:15:1", + "referencedDeclaration": 1133, + "src": "5510:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5454:31:1", + "src": "5494:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4361,40 +4190,37 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 386, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 382, + "id": 389, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5587:7:1", + "referencedDeclaration": 317, + "src": "5627:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 383, + "id": 390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5587:13:1", + "referencedDeclaration": 1133, + "src": "5627:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4403,346 +4229,325 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 384, + "id": 391, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5603:8:1", + "referencedDeclaration": 326, + "src": "5643:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 385, + "id": 392, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5603:14:1", + "referencedDeclaration": 1133, + "src": "5643:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5587:30:1", + "src": "5627:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 392, + "id": 399, "nodeType": "IfStatement", - "src": "5583:87:1", + "src": "5623:87:1", "trueBody": { - "id": 391, + "id": 398, "nodeType": "Block", - "src": "5619:51:1", + "src": "5659:51:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 389, + "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 387, + "id": 394, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5637:8:1", + "referencedDeclaration": 326, + "src": "5677:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 388, + "id": 395, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5648:7:1", + "referencedDeclaration": 317, + "src": "5688:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5637:18:1", + "src": "5677:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 390, + "id": 397, "nodeType": "ExpressionStatement", - "src": "5637:18:1" + "src": "5677:18:1" } ] } }, - "id": 393, + "id": 400, "nodeType": "IfStatement", - "src": "5450:220:1", + "src": "5490:220:1", "trueBody": { - "id": 381, + "id": 388, "nodeType": "Block", - "src": "5487:90:1", + "src": "5527:90:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 375, + "id": 382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 373, + "id": 380, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5505:8:1", + "referencedDeclaration": 326, + "src": "5545:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 374, + "id": 381, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5516:9:1", + "referencedDeclaration": 323, + "src": "5556:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5505:20:1", + "src": "5545:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 376, + "id": 383, "nodeType": "ExpressionStatement", - "src": "5505:20:1" + "src": "5545:20:1" }, { "expression": { - "argumentTypes": null, - "id": 379, + "id": 386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 377, + "id": 384, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5543:9:1", + "referencedDeclaration": 323, + "src": "5583:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 378, + "id": 385, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5555:7:1", + "referencedDeclaration": 317, + "src": "5595:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5543:19:1", + "src": "5583:19:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 380, + "id": 387, "nodeType": "ExpressionStatement", - "src": "5543:19:1" + "src": "5583:19:1" } ] } }, - "id": 394, + "id": 401, "nodeType": "IfStatement", - "src": "5281:389:1", + "src": "5321:389:1", "trueBody": { - "id": 367, + "id": 374, "nodeType": "Block", - "src": "5317:127:1", + "src": "5357:127:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 357, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 355, + "id": 362, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5335:8:1", + "referencedDeclaration": 326, + "src": "5375:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 356, + "id": 363, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5346:9:1", + "referencedDeclaration": 323, + "src": "5386:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5335:20:1", + "src": "5375:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 358, + "id": 365, "nodeType": "ExpressionStatement", - "src": "5335:20:1" + "src": "5375:20:1" }, { "expression": { - "argumentTypes": null, - "id": 361, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 359, + "id": 366, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5373:9:1", + "referencedDeclaration": 323, + "src": "5413:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 360, + "id": 367, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5385:8:1", + "referencedDeclaration": 320, + "src": "5425:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5373:20:1", + "src": "5413:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 362, + "id": 369, "nodeType": "ExpressionStatement", - "src": "5373:20:1" + "src": "5413:20:1" }, { "expression": { - "argumentTypes": null, - "id": 365, + "id": 372, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 363, + "id": 370, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5411:8:1", + "referencedDeclaration": 320, + "src": "5451:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 364, + "id": 371, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5422:7:1", + "referencedDeclaration": 317, + "src": "5462:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5411:18:1", + "src": "5451:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 366, + "id": 373, "nodeType": "ExpressionStatement", - "src": "5411:18:1" + "src": "5451:18:1" } ] } @@ -4750,24 +4555,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 328, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 325, + "id": 332, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4819:1:1", + "referencedDeclaration": 329, + "src": "4859:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4776,51 +4579,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 326, + "id": 333, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4823:5:1", + "referencedDeclaration": 1141, + "src": "4863:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 327, + "id": 334, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4823:12:1", + "src": "4863:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4819:16:1", + "src": "4859:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 396, + "id": 403, "initializationExpression": { - "assignments": [322], + "assignments": [329], "declarations": [ { "constant": false, - "id": 322, + "id": 329, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 396, - "src": "4804:9:1", + "scope": 403, + "src": "4844:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4828,32 +4629,29 @@ "typeString": "uint256" }, "typeName": { - "id": 321, + "id": 328, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4804:7:1", + "src": "4844:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 324, + "id": 331, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 323, + "id": 330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4816:1:1", - "subdenomination": null, + "src": "4856:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4861,12 +4659,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4804:13:1" + "src": "4844:13:1" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 330, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, @@ -4874,15 +4671,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4837:3:1", + "src": "4877:3:1", "subExpression": { - "argumentTypes": null, - "id": 329, + "id": 336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4837:1:1", + "referencedDeclaration": 329, + "src": "4877:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4893,167 +4689,156 @@ "typeString": "uint256" } }, - "id": 331, + "id": 338, "nodeType": "ExpressionStatement", - "src": "4837:3:1" + "src": "4877:3:1" }, "nodeType": "ForStatement", - "src": "4799:881:1" + "src": "4839:881:1" }, { "expression": { - "argumentTypes": null, - "id": 399, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 397, + "id": 404, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5690:10:1", + "referencedDeclaration": 89, + "src": "5730:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 398, + "id": 405, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5703:8:1", + "referencedDeclaration": 320, + "src": "5743:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5690:21:1", + "src": "5730:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 400, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5690:21:1" + "src": "5730:21:1" }, { "expression": { - "argumentTypes": null, - "id": 403, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 401, + "id": 408, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5721:11:1", + "referencedDeclaration": 91, + "src": "5761:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 402, + "id": 409, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5735:9:1", + "referencedDeclaration": 323, + "src": "5775:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5721:23:1", + "src": "5761:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 404, + "id": 411, "nodeType": "ExpressionStatement", - "src": "5721:23:1" + "src": "5761:23:1" }, { "expression": { - "argumentTypes": null, - "id": 407, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 405, + "id": 412, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5754:10:1", + "referencedDeclaration": 93, + "src": "5794:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 406, + "id": 413, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5767:8:1", + "referencedDeclaration": 326, + "src": "5807:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5754:21:1", + "src": "5794:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 408, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5754:21:1" + "src": "5794:21:1" }, { "expression": { - "argumentTypes": null, - "id": 411, + "id": 418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 409, + "id": 416, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "5785:13:1", + "referencedDeclaration": 95, + "src": "5825:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5062,136 +4847,125 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 410, + "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5801:4:1", - "subdenomination": null, + "src": "5841:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5785:20:1", + "src": "5825:20:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 412, + "id": 419, "nodeType": "ExpressionStatement", - "src": "5785:20:1" + "src": "5825:20:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 414, + "id": 421, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5835:10:1", + "referencedDeclaration": 89, + "src": "5875:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 415, + "id": 422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "5835:13:1", + "referencedDeclaration": 1123, + "src": "5875:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 416, + "id": 423, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5850:10:1", + "referencedDeclaration": 89, + "src": "5890:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 417, + "id": 424, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5850:22:1", + "referencedDeclaration": 1127, + "src": "5890:22:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 418, + "id": 425, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5874:10:1", + "referencedDeclaration": 89, + "src": "5914:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 419, + "id": 426, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5874:16:1", + "referencedDeclaration": 1133, + "src": "5914:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "31", - "id": 420, + "id": 427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5892:1:1", - "subdenomination": null, + "src": "5932:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -5218,18 +4992,18 @@ "typeString": "int_const 1" } ], - "id": 413, + "id": 420, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "5820:14:1", + "referencedDeclaration": 118, + "src": "5860:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 421, + "id": 428, "isConstant": false, "isLValue": false, "isPure": false, @@ -5237,119 +5011,111 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5820:74:1", + "src": "5860:74:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 422, + "id": 429, "nodeType": "EmitStatement", - "src": "5815:79:1" + "src": "5855:79:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 424, + "id": 431, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5924:11:1", + "referencedDeclaration": 91, + "src": "5964:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 425, + "id": 432, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "5924:14:1", + "referencedDeclaration": 1123, + "src": "5964:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 426, + "id": 433, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5940:11:1", + "referencedDeclaration": 91, + "src": "5980:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 427, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5940:23:1", + "referencedDeclaration": 1127, + "src": "5980:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 428, + "id": 435, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5965:11:1", + "referencedDeclaration": 91, + "src": "6005:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 429, + "id": 436, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5965:17:1", + "referencedDeclaration": 1133, + "src": "6005:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "32", - "id": 430, + "id": 437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5984:1:1", - "subdenomination": null, + "src": "6024:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -5376,18 +5142,18 @@ "typeString": "int_const 2" } ], - "id": 423, + "id": 430, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "5909:14:1", + "referencedDeclaration": 118, + "src": "5949:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 431, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -5395,119 +5161,111 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5909:77:1", + "src": "5949:77:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 432, + "id": 439, "nodeType": "EmitStatement", - "src": "5904:82:1" + "src": "5944:82:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 434, + "id": 441, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6016:10:1", + "referencedDeclaration": 93, + "src": "6056:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 435, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6016:13:1", + "referencedDeclaration": 1123, + "src": "6056:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 436, + "id": 443, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6031:10:1", + "referencedDeclaration": 93, + "src": "6071:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 437, + "id": 444, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "6031:22:1", + "referencedDeclaration": 1127, + "src": "6071:22:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 438, + "id": 445, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6055:10:1", + "referencedDeclaration": 93, + "src": "6095:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 439, + "id": 446, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "6055:16:1", + "referencedDeclaration": 1133, + "src": "6095:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "33", - "id": 440, + "id": 447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6073:1:1", - "subdenomination": null, + "src": "6113:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -5534,18 +5292,18 @@ "typeString": "int_const 3" } ], - "id": 433, + "id": 440, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "6001:14:1", + "referencedDeclaration": 118, + "src": "6041:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 441, + "id": 448, "isConstant": false, "isLValue": false, "isPure": false, @@ -5553,281 +5311,278 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6001:74:1", + "src": "6041:74:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 442, + "id": 449, "nodeType": "EmitStatement", - "src": "5996:79:1" + "src": "6036:79:1" } ] }, - "documentation": "@notice Published the ranking results of the contest.\n@dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).", - "id": 444, + "documentation": { + "id": 296, + "nodeType": "StructuredDocumentation", + "src": "4304:157:1", + "text": "@notice Published the ranking results of the contest.\n@dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place)." + }, + "functionSelector": "90d768e4", + "id": 451, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 292, + "id": 299, "modifierName": { - "argumentTypes": null, - "id": 291, + "id": 298, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "4474:20:1", + "referencedDeclaration": 1205, + "src": "4514:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4474:20:1" + "src": "4514:20:1" }, { - "arguments": null, - "id": 294, + "id": 301, "modifierName": { - "argumentTypes": null, - "id": 293, + "id": 300, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "4503:18:1", + "referencedDeclaration": 1224, + "src": "4543:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4503:18:1" + "src": "4543:18:1" }, { - "arguments": null, - "id": 296, + "id": 303, "modifierName": { - "argumentTypes": null, - "id": 295, + "id": 302, "name": "evaluationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4530:18:1", + "referencedDeclaration": 137, + "src": "4570:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4530:18:1" + "src": "4570:18:1" }, { - "arguments": null, - "id": 298, + "id": 305, "modifierName": { - "argumentTypes": null, - "id": 297, + "id": 304, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "4557:13:1", + "referencedDeclaration": 3465, + "src": "4597:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4557:13:1" + "src": "4597:13:1" }, { - "arguments": null, - "id": 300, + "id": 307, "modifierName": { - "argumentTypes": null, - "id": 299, + "id": 306, "name": "whenRankNotPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 152, - "src": "4579:20:1", + "referencedDeclaration": 156, + "src": "4619:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:20:1" + "src": "4619:20:1" } ], "name": "publishRank", "nodeType": "FunctionDefinition", "parameters": { - "id": 290, + "id": 297, "nodeType": "ParameterList", "parameters": [], - "src": "4446:2:1" + "src": "4486:2:1" }, "returnParameters": { - "id": 301, + "id": 308, "nodeType": "ParameterList", "parameters": [], - "src": "4604:0:1" + "src": "4644:0:1" }, - "scope": 648, - "src": "4426:1656:1", + "scope": 674, + "src": "4466:1656:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 461, + "id": 469, "nodeType": "Block", - "src": "6358:70:1", + "src": "6398:70:1", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 453, + "id": 461, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "6376:10:1", + "referencedDeclaration": 89, + "src": "6416:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 454, + "id": 462, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6376:13:1", + "referencedDeclaration": 1123, + "src": "6416:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 455, + "id": 463, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "6391:11:1", + "referencedDeclaration": 91, + "src": "6431:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 456, + "id": 464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6391:14:1", + "referencedDeclaration": 1123, + "src": "6431:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 457, + "id": 465, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6407:10:1", + "referencedDeclaration": 93, + "src": "6447:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 458, + "id": 466, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6407:13:1", + "referencedDeclaration": 1123, + "src": "6447:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 459, + "id": 467, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6375:46:1", + "src": "6415:46:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256,uint256)" } }, - "functionReturnParameters": 452, - "id": 460, + "functionReturnParameters": 460, + "id": 468, "nodeType": "Return", - "src": "6368:53:1" + "src": "6408:53:1" } ] }, - "documentation": "@notice Gets the id of the winner teams.\n@return {uint256} First place's id\n@return {uint256} Second place's id\n@return {uint256} Third place's id", - "id": 462, + "documentation": { + "id": 452, + "nodeType": "StructuredDocumentation", + "src": "6128:190:1", + "text": "@notice Gets the id of the winner teams.\n@return {uint256} First place's id\n@return {uint256} Second place's id\n@return {uint256} Third place's id" + }, + "functionSelector": "737a6340", + "id": 470, "implemented": true, "kind": "function", "modifiers": [], "name": "getWinnersIds", "nodeType": "FunctionDefinition", "parameters": { - "id": 445, + "id": 453, "nodeType": "ParameterList", "parameters": [], - "src": "6305:2:1" + "src": "6345:2:1" }, "returnParameters": { - "id": 452, + "id": 460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 447, + "id": 455, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6331:7:1", + "scope": 470, + "src": "6371:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5835,25 +5590,25 @@ "typeString": "uint256" }, "typeName": { - "id": 446, + "id": 454, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6331:7:1", + "src": "6371:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 449, + "id": 457, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6340:7:1", + "scope": 470, + "src": "6380:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5861,25 +5616,25 @@ "typeString": "uint256" }, "typeName": { - "id": 448, + "id": 456, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6340:7:1", + "src": "6380:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 451, + "id": 459, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6349:7:1", + "scope": 470, + "src": "6389:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5887,67 +5642,65 @@ "typeString": "uint256" }, "typeName": { - "id": 450, + "id": 458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6349:7:1", + "src": "6389:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "6330:27:1" + "src": "6370:27:1" }, - "scope": 648, - "src": "6283:145:1", + "scope": 674, + "src": "6323:145:1", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1488], "body": { - "id": 474, + "id": 484, "nodeType": "Block", - "src": "6630:43:1", + "src": "6679:43:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 469, + "id": 479, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "6640:5:1", + "referencedDeclaration": 4294967271, + "src": "6689:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 471, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_closeRegistration", "nodeType": "MemberAccess", - "referencedDeclaration": 1516, - "src": "6640:24:1", + "referencedDeclaration": 1583, + "src": "6689:24:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 472, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -5955,122 +5708,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6640:26:1", + "src": "6689:26:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 473, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6640:26:1" + "src": "6689:26:1" } ] }, - "documentation": "@notice Closes the registration process\n@dev Overwritten to add modifier for access control.", - "id": 475, + "documentation": { + "id": 471, + "nodeType": "StructuredDocumentation", + "src": "6474:120:1", + "text": "@notice Closes the registration process\n@dev Overwritten to add modifier for access control." + }, + "functionSelector": "7dc673bc", + "id": 485, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 465, + "id": 475, "modifierName": { - "argumentTypes": null, - "id": 464, + "id": 474, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "6597:18:1", + "referencedDeclaration": 1195, + "src": "6646:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6597:18:1" + "src": "6646:18:1" }, { - "arguments": null, - "id": 467, + "id": 477, "modifierName": { - "argumentTypes": null, - "id": 466, + "id": 476, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "6616:13:1", + "referencedDeclaration": 3465, + "src": "6665:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6616:13:1" + "src": "6665:13:1" } ], "name": "closeRegistration", "nodeType": "FunctionDefinition", + "overrides": { + "id": 473, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6637:8:1" + }, "parameters": { - "id": 463, + "id": 472, "nodeType": "ParameterList", "parameters": [], - "src": "6585:2:1" + "src": "6625:2:1" }, "returnParameters": { - "id": 468, + "id": 478, "nodeType": "ParameterList", "parameters": [], - "src": "6630:0:1" + "src": "6679:0:1" }, - "scope": 648, - "src": "6559:114:1", + "scope": 674, + "src": "6599:123:1", "stateMutability": "nonpayable", - "superFunction": 1430, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1498], "body": { - "id": 487, + "id": 499, "nodeType": "Block", - "src": "6875:42:1", + "src": "6933:42:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 482, + "id": 494, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "6885:5:1", + "referencedDeclaration": 4294967271, + "src": "6943:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 484, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_openRegistration", "nodeType": "MemberAccess", - "referencedDeclaration": 1528, - "src": "6885:23:1", + "referencedDeclaration": 1596, + "src": "6943:23:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 485, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -6078,122 +5839,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6885:25:1", + "src": "6943:25:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 486, + "id": 498, "nodeType": "ExpressionStatement", - "src": "6885:25:1" + "src": "6943:25:1" } ] }, - "documentation": "@notice Opens the registration process\n@dev Overwritten to add modifier for access control.", - "id": 488, + "documentation": { + "id": 486, + "nodeType": "StructuredDocumentation", + "src": "6728:119:1", + "text": "@notice Opens the registration process\n@dev Overwritten to add modifier for access control." + }, + "functionSelector": "d06e4ee7", + "id": 500, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 478, + "id": 490, "modifierName": { - "argumentTypes": null, - "id": 477, + "id": 489, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "6840:20:1", + "referencedDeclaration": 1205, + "src": "6898:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6840:20:1" + "src": "6898:20:1" }, { - "arguments": null, - "id": 480, + "id": 492, "modifierName": { - "argumentTypes": null, - "id": 479, + "id": 491, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "6861:13:1", + "referencedDeclaration": 3465, + "src": "6919:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6861:13:1" + "src": "6919:13:1" } ], "name": "openRegistration", "nodeType": "FunctionDefinition", + "overrides": { + "id": 488, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6889:8:1" + }, "parameters": { - "id": 476, + "id": 487, "nodeType": "ParameterList", "parameters": [], - "src": "6828:2:1" + "src": "6877:2:1" }, "returnParameters": { - "id": 481, + "id": 493, "nodeType": "ParameterList", "parameters": [], - "src": "6875:0:1" + "src": "6933:0:1" }, - "scope": 648, - "src": "6803:114:1", + "scope": 674, + "src": "6852:123:1", "stateMutability": "nonpayable", - "superFunction": 1439, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1517], "body": { - "id": 500, + "id": 514, "nodeType": "Block", - "src": "7176:41:1", + "src": "7243:41:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 495, + "id": 509, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "7186:5:1", + "referencedDeclaration": 4294967271, + "src": "7253:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 497, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_closeSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 1540, - "src": "7186:22:1", + "referencedDeclaration": 1608, + "src": "7253:22:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 498, + "id": 512, "isConstant": false, "isLValue": false, "isPure": false, @@ -6201,122 +5970,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7186:24:1", + "src": "7253:24:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 499, + "id": 513, "nodeType": "ExpressionStatement", - "src": "7186:24:1" + "src": "7253:24:1" } ] }, - "documentation": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 501, + "documentation": { + "id": 501, + "nodeType": "StructuredDocumentation", + "src": "6981:181:1", + "text": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ffc6ff1e", + "id": 515, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 491, + "id": 505, "modifierName": { - "argumentTypes": null, - "id": 490, + "id": 504, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "7145:16:1", + "referencedDeclaration": 1214, + "src": "7212:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7145:16:1" + "src": "7212:16:1" }, { - "arguments": null, - "id": 493, + "id": 507, "modifierName": { - "argumentTypes": null, - "id": 492, + "id": 506, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7162:13:1", + "referencedDeclaration": 3465, + "src": "7229:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7162:13:1" + "src": "7229:13:1" } ], "name": "closeSubmission", "nodeType": "FunctionDefinition", + "overrides": { + "id": 503, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7203:8:1" + }, "parameters": { - "id": 489, + "id": 502, "nodeType": "ParameterList", "parameters": [], - "src": "7133:2:1" + "src": "7191:2:1" }, "returnParameters": { - "id": 494, + "id": 508, "nodeType": "ParameterList", "parameters": [], - "src": "7176:0:1" + "src": "7243:0:1" }, - "scope": 648, - "src": "7109:108:1", + "scope": 674, + "src": "7167:117:1", "stateMutability": "nonpayable", - "superFunction": 1456, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1527], "body": { - "id": 513, + "id": 529, "nodeType": "Block", - "src": "7476:40:1", + "src": "7552:40:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 508, + "id": 524, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "7486:5:1", + "referencedDeclaration": 4294967271, + "src": "7562:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 510, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_openSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 1552, - "src": "7486:21:1", + "referencedDeclaration": 1621, + "src": "7562:21:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 511, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -6324,106 +6101,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7486:23:1", + "src": "7562:23:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 512, + "id": 528, "nodeType": "ExpressionStatement", - "src": "7486:23:1" + "src": "7562:23:1" } ] }, - "documentation": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 514, + "documentation": { + "id": 516, + "nodeType": "StructuredDocumentation", + "src": "7290:180:1", + "text": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "58e2f50e", + "id": 530, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 504, + "id": 520, "modifierName": { - "argumentTypes": null, - "id": 503, + "id": 519, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "7443:18:1", + "referencedDeclaration": 1224, + "src": "7519:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7443:18:1" + "src": "7519:18:1" }, { - "arguments": null, - "id": 506, + "id": 522, "modifierName": { - "argumentTypes": null, - "id": 505, + "id": 521, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7462:13:1", + "referencedDeclaration": 3465, + "src": "7538:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7462:13:1" + "src": "7538:13:1" } ], "name": "openSubmission", "nodeType": "FunctionDefinition", + "overrides": { + "id": 518, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7510:8:1" + }, "parameters": { - "id": 502, + "id": 517, "nodeType": "ParameterList", "parameters": [], - "src": "7431:2:1" + "src": "7498:2:1" }, "returnParameters": { - "id": 507, + "id": 523, "nodeType": "ParameterList", "parameters": [], - "src": "7476:0:1" + "src": "7552:0:1" }, - "scope": 648, - "src": "7408:108:1", + "scope": 674, + "src": "7475:117:1", "stateMutability": "nonpayable", - "superFunction": 1465, + "virtual": false, "visibility": "external" }, { "body": { - "id": 524, + "id": 541, "nodeType": "Block", - "src": "7766:35:1", + "src": "7842:35:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 521, + "id": 538, "name": "_closeEvaluation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "7776:16:1", + "referencedDeclaration": 576, + "src": "7852:16:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 522, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -6431,106 +6216,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7776:18:1", + "src": "7852:18:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 523, + "id": 540, "nodeType": "ExpressionStatement", - "src": "7776:18:1" + "src": "7852:18:1" } ] }, - "documentation": "@notice Closes the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 525, + "documentation": { + "id": 531, + "nodeType": "StructuredDocumentation", + "src": "7598:172:1", + "text": "@notice Closes the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ae237c77", + "id": 542, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 517, + "id": 534, "modifierName": { - "argumentTypes": null, - "id": 516, + "id": 533, "name": "evaluationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "7735:16:1", + "referencedDeclaration": 127, + "src": "7811:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7735:16:1" + "src": "7811:16:1" }, { - "arguments": null, - "id": 519, + "id": 536, "modifierName": { - "argumentTypes": null, - "id": 518, + "id": 535, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7752:13:1", + "referencedDeclaration": 3465, + "src": "7828:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7752:13:1" + "src": "7828:13:1" } ], "name": "closeEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 515, + "id": 532, "nodeType": "ParameterList", "parameters": [], - "src": "7723:2:1" + "src": "7799:2:1" }, "returnParameters": { - "id": 520, + "id": 537, "nodeType": "ParameterList", "parameters": [], - "src": "7766:0:1" + "src": "7842:0:1" }, - "scope": 648, - "src": "7699:102:1", + "scope": 674, + "src": "7775:102:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 535, + "id": 553, "nodeType": "Block", - "src": "8051:34:1", + "src": "8127:34:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 532, + "id": 550, "name": "_openEvaluation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 568, - "src": "8061:15:1", + "referencedDeclaration": 589, + "src": "8137:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 533, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -6538,133 +6325,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8061:17:1", + "src": "8137:17:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 534, + "id": 552, "nodeType": "ExpressionStatement", - "src": "8061:17:1" + "src": "8137:17:1" } ] }, - "documentation": "@notice Opens the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 536, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "7883:171:1", + "text": "@notice Opens the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "b2a13f92", + "id": 554, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 528, + "id": 546, "modifierName": { - "argumentTypes": null, - "id": 527, + "id": 545, "name": "evaluationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "8018:18:1", + "referencedDeclaration": 137, + "src": "8094:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8018:18:1" + "src": "8094:18:1" }, { - "arguments": null, - "id": 530, + "id": 548, "modifierName": { - "argumentTypes": null, - "id": 529, + "id": 547, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8037:13:1", + "referencedDeclaration": 3465, + "src": "8113:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8037:13:1" + "src": "8113:13:1" } ], "name": "openEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 526, + "id": 544, "nodeType": "ParameterList", "parameters": [], - "src": "8006:2:1" + "src": "8082:2:1" }, "returnParameters": { - "id": 531, + "id": 549, "nodeType": "ParameterList", "parameters": [], - "src": "8051:0:1" + "src": "8127:0:1" }, - "scope": 648, - "src": "7983:102:1", + "scope": 674, + "src": "8059:102:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 543, + "id": 562, "nodeType": "Block", - "src": "8280:41:1", + "src": "8356:41:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 541, + "id": 560, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8297:17:1", + "referencedDeclaration": 87, + "src": "8373:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 540, - "id": 542, + "functionReturnParameters": 559, + "id": 561, "nodeType": "Return", - "src": "8290:24:1" + "src": "8366:24:1" } ] }, - "documentation": "@notice Gets the evaluation status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 544, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "8167:124:1", + "text": "@notice Gets the evaluation status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "a2bce8bd", + "id": 563, "implemented": true, "kind": "function", "modifiers": [], "name": "getEvaluationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 537, + "id": 556, "nodeType": "ParameterList", "parameters": [], - "src": "8248:2:1" + "src": "8324:2:1" }, "returnParameters": { - "id": 540, + "id": 559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 539, + "id": 558, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 544, - "src": "8274:4:1", + "scope": 563, + "src": "8350:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6672,49 +6468,46 @@ "typeString": "bool" }, "typeName": { - "id": 538, + "id": 557, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8274:4:1", + "src": "8350:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "8273:6:1" + "src": "8349:6:1" }, - "scope": 648, - "src": "8220:101:1", + "scope": 674, + "src": "8296:101:1", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 555, + "id": 575, "nodeType": "Block", - "src": "8423:99:1", + "src": "8499:99:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 549, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 547, + "id": 567, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8433:17:1", + "referencedDeclaration": 87, + "src": "8509:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6723,45 +6516,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 548, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8453:5:1", - "subdenomination": null, + "src": "8529:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "8433:25:1", + "src": "8509:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 550, + "id": 570, "nodeType": "ExpressionStatement", - "src": "8433:25:1" + "src": "8509:25:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 552, + "id": 572, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8497:17:1", + "referencedDeclaration": 87, + "src": "8573:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6775,18 +6564,18 @@ "typeString": "bool" } ], - "id": 551, + "id": 571, "name": "EvaluationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "8473:23:1", + "referencedDeclaration": 100, + "src": "8549:23:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 553, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, @@ -6794,65 +6583,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8473:42:1", + "src": "8549:42:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 554, + "id": 574, "nodeType": "EmitStatement", - "src": "8468:47:1" + "src": "8544:47:1" } ] }, - "documentation": "@dev internal implementation for {closeEvaluation.}", - "id": 556, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "8403:54:1", + "text": "@dev internal implementation for {closeEvaluation.}" + }, + "id": 576, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 545, + "id": 565, "nodeType": "ParameterList", "parameters": [], - "src": "8411:2:1" + "src": "8487:2:1" }, "returnParameters": { - "id": 546, + "id": 566, "nodeType": "ParameterList", "parameters": [], - "src": "8423:0:1" + "src": "8499:0:1" }, - "scope": 648, - "src": "8386:136:1", + "scope": 674, + "src": "8462:136:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 567, + "id": 588, "nodeType": "Block", - "src": "8622:98:1", + "src": "8698:98:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 561, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 559, + "id": 580, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8632:17:1", + "referencedDeclaration": 87, + "src": "8708:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6861,45 +6654,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 560, + "id": 581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8652:4:1", - "subdenomination": null, + "src": "8728:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "8632:24:1", + "src": "8708:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 562, + "id": 583, "nodeType": "ExpressionStatement", - "src": "8632:24:1" + "src": "8708:24:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 564, + "id": 585, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8695:17:1", + "referencedDeclaration": 87, + "src": "8771:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6913,18 +6702,18 @@ "typeString": "bool" } ], - "id": 563, + "id": 584, "name": "EvaluationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "8671:23:1", + "referencedDeclaration": 100, + "src": "8747:23:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 565, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -6932,61 +6721,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8671:42:1", + "src": "8747:42:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 566, + "id": 587, "nodeType": "EmitStatement", - "src": "8666:47:1" + "src": "8742:47:1" } ] }, - "documentation": "@dev internal implementation for {openEvaluation.}", - "id": 568, + "documentation": { + "id": 577, + "nodeType": "StructuredDocumentation", + "src": "8604:53:1", + "text": "@dev internal implementation for {openEvaluation.}" + }, + "id": 589, "implemented": true, "kind": "function", "modifiers": [], "name": "_openEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 557, + "id": 578, "nodeType": "ParameterList", "parameters": [], - "src": "8610:2:1" + "src": "8686:2:1" }, "returnParameters": { - "id": 558, + "id": 579, "nodeType": "ParameterList", "parameters": [], - "src": "8622:0:1" + "src": "8698:0:1" }, - "scope": 648, - "src": "8586:134:1", + "scope": 674, + "src": "8662:134:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3241], "body": { - "id": 605, + "id": 628, "nodeType": "Block", - "src": "8884:427:1", + "src": "8969:427:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 576, + "id": 599, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9058:7:1", + "referencedDeclaration": 592, + "src": "9143:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7001,33 +6795,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 573, + "id": 596, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "9042:5:1", + "referencedDeclaration": 4294967271, + "src": "9127:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 575, + "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3113, - "src": "9042:15:1", + "referencedDeclaration": 3241, + "src": "9127:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 577, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, @@ -7035,26 +6828,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9042:24:1", + "src": "9127:24:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 578, + "id": 601, "nodeType": "ExpressionStatement", - "src": "9042:24:1" + "src": "9127:24:1" }, { - "assignments": [580], + "assignments": [603], "declarations": [ { "constant": false, - "id": 580, + "id": 603, + "mutability": "mutable", "name": "newId", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "9076:13:1", + "scope": 628, + "src": "9161:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7062,126 +6857,116 @@ "typeString": "uint256" }, "typeName": { - "id": 579, + "id": 602, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9076:7:1", + "src": "9161:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 583, + "id": 606, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 581, + "id": 604, "name": "judgesInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "9092:10:1", + "referencedDeclaration": 81, + "src": "9177:10:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref[] storage ref" } }, - "id": 582, + "id": 605, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9092:17:1", + "src": "9177:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9076:33:1" + "src": "9161:33:1" }, { - "assignments": [585], + "assignments": [608], "declarations": [ { "constant": false, - "id": 585, + "id": 608, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "9119:18:1", + "scope": 628, + "src": "9204:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 584, + "id": 607, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "9119:5:1", + "referencedDeclaration": 78, + "src": "9204:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 592, + "id": 615, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 587, + "id": 610, "name": "newId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "9146:5:1", + "referencedDeclaration": 603, + "src": "9231:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 588, + "id": 611, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9153:7:1", + "referencedDeclaration": 592, + "src": "9238:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 589, + "id": 612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9162:4:1", - "subdenomination": null, + "src": "9247:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7189,17 +6974,15 @@ "value": "true" }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 590, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9168:5:1", - "subdenomination": null, + "src": "9253:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7226,18 +7009,18 @@ "typeString": "bool" } ], - "id": 586, + "id": 609, "name": "Judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9140:5:1", + "referencedDeclaration": 78, + "src": "9225:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Judge_$77_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Judge_$78_storage_ptr_$", "typeString": "type(struct ContestBracketRegistry.Judge storage pointer)" } }, - "id": 591, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -7245,29 +7028,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9140:34:1", + "src": "9225:34:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "9119:55:1" + "src": "9204:55:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 596, + "id": 619, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9200:5:1", + "referencedDeclaration": 608, + "src": "9285:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } } @@ -7275,38 +7057,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } ], "expression": { - "argumentTypes": null, - "id": 593, + "id": 616, "name": "judgesInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "9184:10:1", + "referencedDeclaration": 81, + "src": "9269:10:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref[] storage ref" } }, - "id": 595, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9184:15:1", + "src": "9269:15:1", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Judge_$77_storage_$returns$_t_uint256_$", - "typeString": "function (struct ContestBracketRegistry.Judge storage ref) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Judge_$78_storage_$returns$__$", + "typeString": "function (struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 597, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -7314,48 +7094,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9184:22:1", + "src": "9269:22:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 598, + "id": 621, "nodeType": "ExpressionStatement", - "src": "9184:22:1" + "src": "9269:22:1" }, { "expression": { - "argumentTypes": null, - "id": 603, + "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 599, + "id": 622, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "9216:14:1", + "referencedDeclaration": 85, + "src": "9301:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 601, + "id": 624, "indexExpression": { - "argumentTypes": null, - "id": 600, + "id": 623, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9231:7:1", + "referencedDeclaration": 592, + "src": "9316:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7366,57 +7143,68 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9216:23:1", + "src": "9301:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 602, + "id": 625, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9242:5:1", + "referencedDeclaration": 608, + "src": "9327:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } }, - "src": "9216:31:1", + "src": "9301:31:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, - "id": 604, + "id": 627, "nodeType": "ExpressionStatement", - "src": "9216:31:1" + "src": "9301:31:1" } ] }, - "documentation": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.", - "id": 606, + "documentation": { + "id": 590, + "nodeType": "StructuredDocumentation", + "src": "8802:108:1", + "text": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members." + }, + "id": 629, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 594, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "8960:8:1" + }, "parameters": { - "id": 571, + "id": 593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 570, + "id": 592, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 606, - "src": "8858:15:1", + "scope": 629, + "src": "8934:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7424,52 +7212,50 @@ "typeString": "address" }, "typeName": { - "id": 569, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8858:7:1", + "src": "8934:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "8857:17:1" + "src": "8933:17:1" }, "returnParameters": { - "id": 572, + "id": 595, "nodeType": "ParameterList", "parameters": [], - "src": "8884:0:1" + "src": "8969:0:1" }, - "scope": 648, - "src": "8839:472:1", + "scope": 674, + "src": "8915:481:1", "stateMutability": "nonpayable", - "superFunction": 3113, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3267], "body": { - "id": 629, + "id": 654, "nodeType": "Block", - "src": "9478:186:1", + "src": "9572:186:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 614, + "id": 639, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "9507:7:1", + "referencedDeclaration": 632, + "src": "9601:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7484,33 +7270,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 611, + "id": 636, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "9488:5:1", + "referencedDeclaration": 4294967271, + "src": "9582:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 613, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3138, - "src": "9488:18:1", + "referencedDeclaration": 3267, + "src": "9582:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 615, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, @@ -7518,73 +7303,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9488:27:1", + "src": "9582:27:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 616, + "id": 641, "nodeType": "ExpressionStatement", - "src": "9488:27:1" + "src": "9582:27:1" }, { - "assignments": [618], + "assignments": [643], "declarations": [ { "constant": false, - "id": 618, + "id": 643, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 629, - "src": "9525:19:1", + "scope": 654, + "src": "9619:19:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 617, + "id": 642, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "9525:5:1", + "referencedDeclaration": 78, + "src": "9619:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 622, + "id": 647, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 619, + "id": 644, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "9547:14:1", + "referencedDeclaration": 85, + "src": "9641:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 621, + "id": 646, "indexExpression": { - "argumentTypes": null, - "id": 620, + "id": 645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "9562:7:1", + "referencedDeclaration": 632, + "src": "9656:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7595,47 +7377,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9547:23:1", + "src": "9641:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "9525:45:1" + "src": "9619:45:1" }, { "expression": { - "argumentTypes": null, - "id": 627, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 623, + "id": 648, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "9580:5:1", + "referencedDeclaration": 643, + "src": "9674:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 625, + "id": 650, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "active", "nodeType": "MemberAccess", - "referencedDeclaration": 74, - "src": "9580:12:1", + "referencedDeclaration": 75, + "src": "9674:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7644,53 +7423,63 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 626, + "id": 651, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9595:5:1", - "subdenomination": null, + "src": "9689:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9580:20:1", + "src": "9674:20:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 628, + "id": 653, "nodeType": "ExpressionStatement", - "src": "9580:20:1" + "src": "9674:20:1" } ] }, - "documentation": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.", - "id": 630, + "documentation": { + "id": 630, + "nodeType": "StructuredDocumentation", + "src": "9402:108:1", + "text": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members." + }, + "id": 655, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 634, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9563:8:1" + }, "parameters": { - "id": 609, + "id": 633, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 608, + "id": 632, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 630, - "src": "9452:15:1", + "scope": 655, + "src": "9537:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7698,74 +7487,69 @@ "typeString": "address" }, "typeName": { - "id": 607, + "id": 631, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9452:7:1", + "src": "9537:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "9451:17:1" + "src": "9536:17:1" }, "returnParameters": { - "id": 610, + "id": 635, "nodeType": "ParameterList", "parameters": [], - "src": "9478:0:1" + "src": "9572:0:1" }, - "scope": 648, - "src": "9430:234:1", + "scope": 674, + "src": "9515:243:1", "stateMutability": "nonpayable", - "superFunction": 3138, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 646, + "id": 672, "nodeType": "Block", - "src": "9910:51:1", + "src": "10004:51:1", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 643, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 639, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 637, + "id": 663, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "9928:5:1", + "referencedDeclaration": 658, + "src": "10022:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7774,24 +7558,22 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 638, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9937:1:1", - "subdenomination": null, + "src": "10031:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "9928:10:1", + "src": "10022:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7800,24 +7582,22 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 642, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 640, + "id": 666, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "9942:5:1", + "referencedDeclaration": 658, + "src": "10036:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7826,74 +7606,78 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "hexValue": "3130", - "id": 641, + "id": 667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9951:2:1", - "subdenomination": null, + "src": "10045:2:1", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, - "src": "9942:11:1", + "src": "10036:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9928:25:1", + "src": "10022:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 644, + "id": 670, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9927:27:1", + "src": "10021:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 636, - "id": 645, + "functionReturnParameters": 662, + "id": 671, "nodeType": "Return", - "src": "9920:34:1" + "src": "10014:34:1" } ] }, - "documentation": "@notice checks if a grade is valid or not.\n@param grade {uint8} the grade to be evaluated\n@return {bool} true if valid; otherwise false", - "id": 647, + "documentation": { + "id": 656, + "nodeType": "StructuredDocumentation", + "src": "9764:171:1", + "text": "@notice checks if a grade is valid or not.\n@param grade {uint8} the grade to be evaluated\n@return {bool} true if valid; otherwise false" + }, + "id": 673, "implemented": true, "kind": "function", "modifiers": [], "name": "isValidGrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 632, + "id": 658, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "9868:11:1", + "scope": 673, + "src": "9962:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7901,32 +7685,32 @@ "typeString": "uint8" }, "typeName": { - "id": 631, + "id": 657, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9868:5:1", + "src": "9962:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "src": "9867:13:1" + "src": "9961:13:1" }, "returnParameters": { - "id": 636, + "id": 662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 635, + "id": 661, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "9904:4:1", + "scope": 673, + "src": "9998:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7934,56 +7718,62 @@ "typeString": "bool" }, "typeName": { - "id": 634, + "id": 660, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9904:4:1", + "src": "9998:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "9903:6:1" + "src": "9997:6:1" }, - "scope": 648, - "src": "9846:115:1", + "scope": 674, + "src": "9940:115:1", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 649, - "src": "264:9699:1" + "scope": 675, + "src": "304:9753:1" } ], - "src": "0:9964:1" + "src": "40:10018:1" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "exportedSymbols": { - "ContestBracketRegistry": [648] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 649, + "id": 675, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { "id": 58, - "literals": ["solidity", "^", "0.5", ".0"], + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "40:31:1" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", "id": 59, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 4216, - "src": "25:59:1", + "scope": 675, + "sourceUnit": 3815, + "src": "73:51:1", "symbolAliases": [], "unitAlias": "" }, @@ -7992,9 +7782,9 @@ "file": "./ContestTeamRegistry.sol", "id": 60, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 1699, - "src": "86:35:1", + "scope": 675, + "sourceUnit": 1773, + "src": "126:35:1", "symbolAliases": [], "unitAlias": "" }, @@ -8003,81 +7793,82 @@ "file": "../roles/ContestRoleManager.sol", "id": 61, "nodeType": "ImportDirective", - "scope": 649, - "sourceUnit": 3196, - "src": "122:41:1", + "scope": 675, + "sourceUnit": 3327, + "src": "162:41:1", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 62, + "id": 63, "name": "ContestTeamRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1698, - "src": "299:19:1", + "referencedDeclaration": 1772, + "src": "348:19:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamRegistry_$1698", + "typeIdentifier": "t_contract$_ContestTeamRegistry_$1772", "typeString": "contract ContestTeamRegistry" } }, - "id": 63, + "id": 64, "nodeType": "InheritanceSpecifier", - "src": "299:19:1" + "src": "348:19:1" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 64, + "id": 65, "name": "ContestRoleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3195, - "src": "320:18:1", + "referencedDeclaration": 3326, + "src": "369:18:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$3195", + "typeIdentifier": "t_contract$_ContestRoleManager_$3326", "typeString": "contract ContestRoleManager" } }, - "id": 65, + "id": 66, "nodeType": "InheritanceSpecifier", - "src": "320:18:1" + "src": "369:18:1" } ], - "contractDependencies": [1698, 3195, 3287, 3401], + "contractDependencies": [1772, 3326, 3416, 3532], "contractKind": "contract", - "documentation": "@notice Controls the evaluation process by the judges and publishing of final results.", + "documentation": { + "id": 62, + "nodeType": "StructuredDocumentation", + "src": "205:98:1", + "text": "@notice Controls the evaluation process by the judges and publishing of final results." + }, "fullyImplemented": true, - "id": 648, - "linearizedBaseContracts": [648, 3195, 3287, 3401, 1698], + "id": 674, + "linearizedBaseContracts": [674, 3326, 3416, 3532, 1772], "name": "ContestBracketRegistry", "nodeType": "ContractDefinition", "nodes": [ { - "id": 68, + "id": 69, "libraryName": { - "contractScope": null, - "id": 66, + "id": 67, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "351:8:1", + "referencedDeclaration": 3814, + "src": "400:8:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "345:27:1", + "src": "394:27:1", "typeName": { - "id": 67, + "id": 68, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "364:7:1", + "src": "413:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8086,15 +7877,16 @@ }, { "canonicalName": "ContestBracketRegistry.Judge", - "id": 77, + "id": 78, "members": [ { "constant": false, - "id": 70, + "id": 71, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "473:10:1", + "scope": 78, + "src": "522:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8102,25 +7894,25 @@ "typeString": "uint256" }, "typeName": { - "id": 69, + "id": 70, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "473:7:1", + "src": "522:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 72, + "id": 73, + "mutability": "mutable", "name": "judgeAddress", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "493:20:1", + "scope": 78, + "src": "542:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8128,26 +7920,26 @@ "typeString": "address" }, "typeName": { - "id": 71, + "id": 72, "name": "address", "nodeType": "ElementaryTypeName", - "src": "493:7:1", + "src": "542:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 74, + "id": 75, + "mutability": "mutable", "name": "active", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "523:11:1", + "scope": 78, + "src": "572:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8155,25 +7947,25 @@ "typeString": "bool" }, "typeName": { - "id": 73, + "id": 74, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "523:4:1", + "src": "572:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 76, + "id": 77, + "mutability": "mutable", "name": "voted", "nodeType": "VariableDeclaration", - "scope": 77, - "src": "544:10:1", + "scope": 78, + "src": "593:10:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8181,117 +7973,114 @@ "typeString": "bool" }, "typeName": { - "id": 75, + "id": 76, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "544:4:1", + "src": "593:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], "name": "Judge", "nodeType": "StructDefinition", - "scope": 648, - "src": "450:111:1", + "scope": 674, + "src": "499:111:1", "visibility": "public" }, { "constant": false, - "id": 80, + "id": 81, + "mutability": "mutable", "name": "judgesInfo", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "590:27:1", + "scope": 674, + "src": "639:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge[]" }, "typeName": { "baseType": { - "contractScope": null, - "id": 78, + "id": 79, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "590:5:1", + "referencedDeclaration": 78, + "src": "639:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "id": 79, - "length": null, + "id": 80, "nodeType": "ArrayTypeName", - "src": "590:7:1", + "src": "639:7:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 84, + "id": 85, + "mutability": "mutable", "name": "judgeByAddress", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "733:49:1", + "scope": 674, + "src": "782:49:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge)" }, "typeName": { - "id": 83, + "id": 84, "keyType": { - "id": 81, + "id": 82, "name": "address", "nodeType": "ElementaryTypeName", - "src": "741:7:1", + "src": "790:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "733:25:1", + "src": "782:25:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge)" }, "valueType": { - "contractScope": null, - "id": 82, + "id": 83, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "752:5:1", + "referencedDeclaration": 78, + "src": "801:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 86, + "id": 87, + "mutability": "mutable", "name": "evaluationEnabled", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "788:31:1", + "scope": 674, + "src": "837:31:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8299,109 +8088,106 @@ "typeString": "bool" }, "typeName": { - "id": 85, + "id": 86, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "788:4:1", + "src": "837:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 88, + "id": 89, + "mutability": "mutable", "name": "firstPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "825:24:1", + "scope": 674, + "src": "874:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 87, + "id": 88, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "825:4:1", + "referencedDeclaration": 1134, + "src": "874:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 90, + "id": 91, + "mutability": "mutable", "name": "secondPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "855:25:1", + "scope": 674, + "src": "904:25:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 89, + "id": 90, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "855:4:1", + "referencedDeclaration": 1134, + "src": "904:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 92, + "id": 93, + "mutability": "mutable", "name": "thirdPlace", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "886:24:1", + "scope": 674, + "src": "935:24:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 91, + "id": 92, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "886:4:1", + "referencedDeclaration": 1134, + "src": "935:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 94, + "id": 95, + "mutability": "mutable", "name": "rankPublished", "nodeType": "VariableDeclaration", - "scope": 648, - "src": "916:27:1", + "scope": 674, + "src": "965:27:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8409,36 +8195,41 @@ "typeString": "bool" }, "typeName": { - "id": 93, + "id": 94, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "916:4:1", + "src": "965:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}", - "id": 98, + "documentation": { + "id": 96, + "nodeType": "StructuredDocumentation", + "src": "999:103:1", + "text": "@dev emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}" + }, + "id": 100, "name": "EvaluationStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 97, + "id": 99, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 96, + "id": 98, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 98, - "src": "1088:12:1", + "scope": 100, + "src": "1137:12:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8446,41 +8237,46 @@ "typeString": "bool" }, "typeName": { - "id": 95, + "id": 97, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1088:4:1", + "src": "1137:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1087:14:1" + "src": "1136:14:1" }, - "src": "1058:44:1" + "src": "1107:44:1" }, { "anonymous": false, - "documentation": "@dev emitted when a judge submits its evaluation.", - "id": 104, + "documentation": { + "id": 101, + "nodeType": "StructuredDocumentation", + "src": "1156:53:1", + "text": "@dev emitted when a judge submits its evaluation." + }, + "id": 107, "name": "JudgeVoted", "nodeType": "EventDefinition", "parameters": { - "id": 103, + "id": 106, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 100, + "id": 103, "indexed": true, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 104, - "src": "1182:18:1", + "scope": 107, + "src": "1231:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8488,26 +8284,26 @@ "typeString": "uint256" }, "typeName": { - "id": 99, + "id": 102, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1182:7:1", + "src": "1231:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 102, + "id": 105, "indexed": false, + "mutability": "mutable", "name": "judgeAddress", "nodeType": "VariableDeclaration", - "scope": 104, - "src": "1202:20:1", + "scope": 107, + "src": "1251:20:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8515,42 +8311,47 @@ "typeString": "address" }, "typeName": { - "id": 101, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1202:7:1", + "src": "1251:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1181:42:1" + "src": "1230:42:1" }, - "src": "1165:59:1" + "src": "1214:59:1" }, { "anonymous": false, - "documentation": "@dev emitted when winners are announced.", - "id": 114, + "documentation": { + "id": 108, + "nodeType": "StructuredDocumentation", + "src": "1278:44:1", + "text": "@dev emitted when winners are announced." + }, + "id": 118, "name": "WinnerAnnouced", "nodeType": "EventDefinition", "parameters": { - "id": 113, + "id": 117, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 106, + "id": 110, "indexed": false, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1299:14:1", + "scope": 118, + "src": "1348:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8558,26 +8359,26 @@ "typeString": "uint256" }, "typeName": { - "id": 105, + "id": 109, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1299:7:1", + "src": "1348:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 108, + "id": 112, "indexed": false, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1315:19:1", + "scope": 118, + "src": "1364:19:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8585,27 +8386,27 @@ "typeString": "address" }, "typeName": { - "id": 107, + "id": 111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1315:7:1", + "src": "1364:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 110, + "id": 114, "indexed": false, + "mutability": "mutable", "name": "finalGrade", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1336:18:1", + "scope": 118, + "src": "1385:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8613,26 +8414,26 @@ "typeString": "uint256" }, "typeName": { - "id": 109, + "id": 113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1336:7:1", + "src": "1385:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 112, + "id": 116, "indexed": false, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "1356:18:1", + "scope": 118, + "src": "1405:18:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8640,58 +8441,53 @@ "typeString": "uint8" }, "typeName": { - "id": 111, + "id": 115, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1356:5:1", + "src": "1405:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "src": "1298:77:1" + "src": "1347:77:1" }, - "src": "1278:98:1" + "src": "1327:98:1" }, { "body": { - "id": 122, + "id": 126, "nodeType": "Block", - "src": "1410:78:1", + "src": "1459:78:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 117, + "id": 121, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1428:17:1", + "referencedDeclaration": 87, + "src": "1477:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4576616c756174696f6e20697320636c6f736564", - "id": 118, + "id": 122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1447:22:1", - "subdenomination": null, + "src": "1496:22:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_00789d9793b7ca39eb69d1cdbc1dcc8c0bcd2c57940af6d84925549116f186b8", "typeString": "literal_string \"Evaluation is closed\"" @@ -8710,18 +8506,18 @@ "typeString": "literal_string \"Evaluation is closed\"" } ], - "id": 116, + "id": 120, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1420:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1469:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 119, + "id": 123, "isConstant": false, "isLValue": false, "isPure": false, @@ -8729,49 +8525,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1420:50:1", + "src": "1469:50:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 120, + "id": 124, "nodeType": "ExpressionStatement", - "src": "1420:50:1" + "src": "1469:50:1" }, { - "id": 121, + "id": 125, "nodeType": "PlaceholderStatement", - "src": "1480:1:1" + "src": "1529:1:1" } ] }, - "documentation": null, - "id": 123, + "id": 127, "name": "evaluationIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 115, + "id": 119, "nodeType": "ParameterList", "parameters": [], - "src": "1407:2:1" + "src": "1456:2:1" }, - "src": "1382:106:1", + "src": "1431:106:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 132, + "id": 136, "nodeType": "Block", - "src": "1524:77:1", + "src": "1573:77:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 127, + "id": 131, "isConstant": false, "isLValue": false, "isPure": false, @@ -8779,15 +8574,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1542:18:1", + "src": "1591:18:1", "subExpression": { - "argumentTypes": null, - "id": 126, + "id": 130, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1543:17:1", + "referencedDeclaration": 87, + "src": "1592:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8799,17 +8593,15 @@ } }, { - "argumentTypes": null, "hexValue": "4576616c756174696f6e206973206f70656e", - "id": 128, + "id": 132, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1562:20:1", - "subdenomination": null, + "src": "1611:20:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ed5f1534ba0f019f43d1be7f70a2e4d7e189df891ef0fc649f71ce432cb31327", "typeString": "literal_string \"Evaluation is open\"" @@ -8828,18 +8620,18 @@ "typeString": "literal_string \"Evaluation is open\"" } ], - "id": 125, + "id": 129, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1534:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1583:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 129, + "id": 133, "isConstant": false, "isLValue": false, "isPure": false, @@ -8847,71 +8639,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1534:49:1", + "src": "1583:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 130, + "id": 134, "nodeType": "ExpressionStatement", - "src": "1534:49:1" + "src": "1583:49:1" }, { - "id": 131, + "id": 135, "nodeType": "PlaceholderStatement", - "src": "1593:1:1" + "src": "1642:1:1" } ] }, - "documentation": null, - "id": 133, + "id": 137, "name": "evaluationIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 124, + "id": 128, "nodeType": "ParameterList", "parameters": [], - "src": "1521:2:1" + "src": "1570:2:1" }, - "src": "1494:107:1", + "src": "1543:107:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 141, + "id": 145, "nodeType": "Block", - "src": "1634:76:1", + "src": "1683:76:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 136, + "id": 140, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "1652:13:1", + "referencedDeclaration": 95, + "src": "1701:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "52616e6b206e6f74207075626c697368656420796574", - "id": 137, + "id": 141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1667:24:1", - "subdenomination": null, + "src": "1716:24:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a27b3462abe6c8e0fcaa8553a654854ac395de97292872c00ef24dd0dd2e14f1", "typeString": "literal_string \"Rank not published yet\"" @@ -8930,18 +8719,18 @@ "typeString": "literal_string \"Rank not published yet\"" } ], - "id": 135, + "id": 139, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1644:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1693:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 138, + "id": 142, "isConstant": false, "isLValue": false, "isPure": false, @@ -8949,49 +8738,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1644:48:1", + "src": "1693:48:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 139, + "id": 143, "nodeType": "ExpressionStatement", - "src": "1644:48:1" + "src": "1693:48:1" }, { - "id": 140, + "id": 144, "nodeType": "PlaceholderStatement", - "src": "1702:1:1" + "src": "1751:1:1" } ] }, - "documentation": null, - "id": 142, + "id": 146, "name": "whenRankPublished", "nodeType": "ModifierDefinition", "parameters": { - "id": 134, + "id": 138, "nodeType": "ParameterList", "parameters": [], - "src": "1634:0:1" + "src": "1683:0:1" }, - "src": "1607:103:1", + "src": "1656:103:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 151, + "id": 155, "nodeType": "Block", - "src": "1746:77:1", + "src": "1795:77:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 146, + "id": 150, "isConstant": false, "isLValue": false, "isPure": false, @@ -8999,15 +8787,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1764:14:1", + "src": "1813:14:1", "subExpression": { - "argumentTypes": null, - "id": 145, + "id": 149, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "1765:13:1", + "referencedDeclaration": 95, + "src": "1814:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9019,17 +8806,15 @@ } }, { - "argumentTypes": null, "hexValue": "52616e6b20616c7265616479207075626c6973686564", - "id": 147, + "id": 151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1780:24:1", - "subdenomination": null, + "src": "1829:24:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ffd0869df43b7506d49e44ed3163de48ff71bb77e0ec6d9725c8f2369908fc7a", "typeString": "literal_string \"Rank already published\"" @@ -9048,18 +8833,18 @@ "typeString": "literal_string \"Rank already published\"" } ], - "id": 144, + "id": 148, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1756:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1805:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 148, + "id": 152, "isConstant": false, "isLValue": false, "isPure": false, @@ -9067,114 +8852,118 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1756:49:1", + "src": "1805:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 149, + "id": 153, "nodeType": "ExpressionStatement", - "src": "1756:49:1" + "src": "1805:49:1" }, { - "id": 150, + "id": 154, "nodeType": "PlaceholderStatement", - "src": "1815:1:1" + "src": "1864:1:1" } ] }, - "documentation": null, - "id": 152, + "id": 156, "name": "whenRankNotPublished", "nodeType": "ModifierDefinition", "parameters": { - "id": 143, + "id": 147, "nodeType": "ParameterList", "parameters": [], - "src": "1746:0:1" + "src": "1795:0:1" }, - "src": "1716:107:1", + "src": "1765:107:1", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 162, + "id": 167, "nodeType": "Block", - "src": "2092:2:1", + "src": "2132:2:1", "statements": [] }, - "documentation": "@dev This class needs to be inherited - internal visibility\n @param initialOrganizer Represents the organizer who owns the contest, initially.", - "id": 163, + "documentation": { + "id": 157, + "nodeType": "StructuredDocumentation", + "src": "1878:152:1", + "text": "@dev This class needs to be inherited - internal visibility\n @param initialOrganizer Represents the organizer who owns the contest, initially." + }, + "id": 168, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 157, + "id": 162, "modifierName": { - "argumentTypes": null, - "id": 156, + "id": 161, "name": "ContestTeamRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "2033:19:1", + "referencedDeclaration": 1772, + "src": "2073:19:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1698_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1772_$", "typeString": "type(contract ContestTeamRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "2033:21:1" + "src": "2073:21:1" }, { "arguments": [ { - "argumentTypes": null, - "id": 159, + "id": 164, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "2074:16:1", + "referencedDeclaration": 159, + "src": "2114:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 160, + "id": 165, "modifierName": { - "argumentTypes": null, - "id": 158, + "id": 163, "name": "ContestRoleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "2055:18:1", + "referencedDeclaration": 3326, + "src": "2095:18:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3195_$", + "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3326_$", "typeString": "type(contract ContestRoleManager)" } }, "nodeType": "ModifierInvocation", - "src": "2055:36:1" + "src": "2095:36:1" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 155, + "id": 160, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 154, + "id": 159, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 163, - "src": "1998:24:1", + "scope": 168, + "src": "2047:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9182,79 +8971,73 @@ "typeString": "address" }, "typeName": { - "id": 153, + "id": 158, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1998:7:1", + "src": "2047:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1997:26:1" + "src": "2046:26:1" }, "returnParameters": { - "id": 161, + "id": 166, "nodeType": "ParameterList", "parameters": [], - "src": "2092:0:1" + "src": "2132:0:1" }, - "scope": 648, - "src": "1986:108:1", + "scope": 674, + "src": "2035:99:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 288, + "id": 294, "nodeType": "Block", - "src": "2850:1408:1", + "src": "2890:1408:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 181, + "id": 187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 177, + "id": 183, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "2868:7:1", + "referencedDeclaration": 172, + "src": "2908:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 178, + "id": 184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2868:14:1", + "src": "2908:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9263,52 +9046,47 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 179, + "id": 185, "name": "teamGrades", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2886:10:1", + "referencedDeclaration": 175, + "src": "2926:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", "typeString": "uint8[] calldata" } }, - "id": 180, + "id": 186, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2886:17:1", + "src": "2926:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2868:35:1", + "src": "2908:35:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c", - "id": 182, + "id": 188, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2905:53:1", - "subdenomination": null, + "src": "2945:53:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a3ec6d81c01ff486e55a40c83e57bf8a6853c1b35af580620f15935af71d3d7", "typeString": "literal_string \"Length of teams and teamGrades arrays must be equal\"" @@ -9327,18 +9105,18 @@ "typeString": "literal_string \"Length of teams and teamGrades arrays must be equal\"" } ], - "id": 176, + "id": 182, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2860:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 183, + "id": 189, "isConstant": false, "isLValue": false, "isPure": false, @@ -9346,55 +9124,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2860:99:1", + "src": "2900:99:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 190, "nodeType": "ExpressionStatement", - "src": "2860:99:1" + "src": "2900:99:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 189, + "id": 195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 186, + "id": 192, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "2990:7:1", + "referencedDeclaration": 172, + "src": "3030:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 187, + "id": 193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2990:14:1", + "src": "3030:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9403,36 +9177,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 188, + "id": 194, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3008:18:1", + "referencedDeclaration": 1143, + "src": "3048:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2990:36:1", + "src": "3030:36:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "7465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d73", - "id": 190, + "id": 196, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3040:65:1", - "subdenomination": null, + "src": "3080:65:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_996798abcc7c7c4b0e9f436c44f7c51508aad3a7327477d396fbb4e0747dd1b4", "typeString": "literal_string \"teamsIds and grades do not match the counting of approved teams\"" @@ -9451,18 +9222,18 @@ "typeString": "literal_string \"teamsIds and grades do not match the counting of approved teams\"" } ], - "id": 185, + "id": 191, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2969:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3009:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 191, + "id": 197, "isConstant": false, "isLValue": false, "isPure": false, @@ -9470,39 +9241,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2969:146:1", + "src": "3009:146:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 192, + "id": 198, "nodeType": "ExpressionStatement", - "src": "2969:146:1" + "src": "3009:146:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 196, + "id": 202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 194, + "id": 200, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3133:18:1", + "referencedDeclaration": 1143, + "src": "3173:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9511,41 +9280,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 195, + "id": 201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3154:1:1", - "subdenomination": null, + "src": "3194:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3133:22:1", + "src": "3173:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f20617070726f766564207465616d7320746f206576616c75617465", - "id": 197, + "id": 203, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3157:31:1", - "subdenomination": null, + "src": "3197:31:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9aeb6c3343c86ca073b3c2345ba58e0ddde78661bff93d49f1be25130f04f3", "typeString": "literal_string \"No approved teams to evaluate\"" @@ -9564,18 +9329,18 @@ "typeString": "literal_string \"No approved teams to evaluate\"" } ], - "id": 193, + "id": 199, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3125:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3165:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 198, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -9583,89 +9348,84 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3125:64:1", + "src": "3165:64:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 199, + "id": 205, "nodeType": "ExpressionStatement", - "src": "3125:64:1" + "src": "3165:64:1" }, { - "assignments": [201], + "assignments": [207], "declarations": [ { "constant": false, - "id": 201, + "id": 207, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 288, - "src": "3199:19:1", + "scope": 294, + "src": "3239:19:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 200, + "id": 206, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "3199:5:1", + "referencedDeclaration": 78, + "src": "3239:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 206, + "id": 212, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 202, + "id": 208, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "3221:14:1", + "referencedDeclaration": 85, + "src": "3261:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 205, + "id": 211, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 203, + "id": 209, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3236:3:1", + "referencedDeclaration": 4294967281, + "src": "3276:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 204, + "id": 210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3236:10:1", + "src": "3276:10:1", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9676,22 +9436,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3221:26:1", + "src": "3261:26:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3199:48:1" + "src": "3239:48:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 210, + "id": 216, "isConstant": false, "isLValue": false, "isPure": false, @@ -9699,31 +9457,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3265:12:1", + "src": "3305:12:1", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 208, + "id": 214, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "3266:5:1", + "referencedDeclaration": 207, + "src": "3306:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 209, + "id": 215, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 76, - "src": "3266:11:1", + "referencedDeclaration": 77, + "src": "3306:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9735,17 +9491,15 @@ } }, { - "argumentTypes": null, "hexValue": "4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e", - "id": 211, + "id": 217, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3279:36:1", - "subdenomination": null, + "src": "3319:36:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3e98dce088ce9649d9093074c643a5f49a960b094be13034ffe994e4fedc57c7", "typeString": "literal_string \"Judge already submitted evaluation\"" @@ -9764,18 +9518,18 @@ "typeString": "literal_string \"Judge already submitted evaluation\"" } ], - "id": 207, + "id": 213, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3257:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3297:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 212, + "id": 218, "isConstant": false, "isLValue": false, "isPure": false, @@ -9783,32 +9537,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3257:59:1", + "src": "3297:59:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 213, + "id": 219, "nodeType": "ExpressionStatement", - "src": "3257:59:1" + "src": "3297:59:1" }, { "body": { - "id": 273, + "id": 279, "nodeType": "Block", - "src": "3375:752:1", + "src": "3415:752:1", "statements": [ { - "assignments": [225], + "assignments": [231], "declarations": [ { "constant": false, - "id": 225, + "id": 231, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "3389:14:1", + "scope": 279, + "src": "3429:14:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9816,44 +9572,40 @@ "typeString": "uint256" }, "typeName": { - "id": 224, + "id": 230, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3389:7:1", + "src": "3429:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 229, + "id": 235, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 226, + "id": 232, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "3406:7:1", + "referencedDeclaration": 172, + "src": "3446:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 228, + "id": 234, "indexExpression": { - "argumentTypes": null, - "id": 227, + "id": 233, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3414:1:1", + "referencedDeclaration": 221, + "src": "3454:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9864,25 +9616,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3406:10:1", + "src": "3446:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3389:27:1" + "src": "3429:27:1" }, { - "assignments": [231], + "assignments": [237], "declarations": [ { "constant": false, - "id": 231, + "id": 237, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "3430:11:1", + "scope": 279, + "src": "3470:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9890,44 +9643,40 @@ "typeString": "uint8" }, "typeName": { - "id": 230, + "id": 236, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3430:5:1", + "src": "3470:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "id": 235, + "id": 241, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 232, + "id": 238, "name": "teamGrades", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "3444:10:1", + "referencedDeclaration": 175, + "src": "3484:10:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_calldata_ptr", "typeString": "uint8[] calldata" } }, - "id": 234, + "id": 240, "indexExpression": { - "argumentTypes": null, - "id": 233, + "id": 239, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3455:1:1", + "referencedDeclaration": 221, + "src": "3495:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9938,30 +9687,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3444:13:1", + "src": "3484:13:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "3430:27:1" + "src": "3470:27:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 238, + "id": 244, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3864:6:1", + "referencedDeclaration": 231, + "src": "3904:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9975,18 +9721,18 @@ "typeString": "uint256" } ], - "id": 237, + "id": 243, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "3850:13:1", + "referencedDeclaration": 1745, + "src": "3890:13:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 239, + "id": 245, "isConstant": false, "isLValue": false, "isPure": false, @@ -9994,24 +9740,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3850:21:1", + "src": "3890:21:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207465616d206964", - "id": 240, + "id": 246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3873:17:1", - "subdenomination": null, + "src": "3913:17:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_571f2ed6e8a5538ea54204f561cb7ffcc7bba9fb904df91289afa3cee0194bbc", "typeString": "literal_string \"Invalid team id\"" @@ -10030,18 +9775,18 @@ "typeString": "literal_string \"Invalid team id\"" } ], - "id": 236, + "id": 242, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3842:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3882:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 241, + "id": 247, "isConstant": false, "isLValue": false, "isPure": false, @@ -10049,31 +9794,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3842:49:1", + "src": "3882:49:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 242, + "id": 248, "nodeType": "ExpressionStatement", - "src": "3842:49:1" + "src": "3882:49:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 245, + "id": 251, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "3928:6:1", + "referencedDeclaration": 231, + "src": "3968:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10087,18 +9830,18 @@ "typeString": "uint256" } ], - "id": 244, + "id": 250, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "3913:14:1", + "referencedDeclaration": 1771, + "src": "3953:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 246, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, @@ -10106,24 +9849,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3913:22:1", + "src": "3953:22:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420617070726f766564", - "id": 247, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3937:22:1", - "subdenomination": null, + "src": "3977:22:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_93b89bf7b168f7f31c6e9087225242369de79bf9b7b75b2a443371536dcc9123", "typeString": "literal_string \"Team is not approved\"" @@ -10142,18 +9884,18 @@ "typeString": "literal_string \"Team is not approved\"" } ], - "id": 243, + "id": 249, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3905:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3945:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 248, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -10161,31 +9903,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3905:55:1", + "src": "3945:55:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 249, + "id": 255, "nodeType": "ExpressionStatement", - "src": "3905:55:1" + "src": "3945:55:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 252, + "id": 258, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "3995:5:1", + "referencedDeclaration": 237, + "src": "4035:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10199,18 +9939,18 @@ "typeString": "uint8" } ], - "id": 251, + "id": 257, "name": "isValidGrade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "3982:12:1", + "referencedDeclaration": 673, + "src": "4022:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_bool_$", "typeString": "function (uint8) pure returns (bool)" } }, - "id": 253, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -10218,24 +9958,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3982:19:1", + "src": "4022:19:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964206772616465", - "id": 254, + "id": 260, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4003:15:1", - "subdenomination": null, + "src": "4043:15:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a548bc4ca802e7679af112e13c6a9429b1cdef7e1361d4e5f453f2271b2cc93f", "typeString": "literal_string \"Invalid grade\"" @@ -10254,18 +9993,18 @@ "typeString": "literal_string \"Invalid grade\"" } ], - "id": 250, + "id": 256, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3974:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4014:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 255, + "id": 261, "isConstant": false, "isLValue": false, "isPure": false, @@ -10273,73 +10012,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3974:45:1", + "src": "4014:45:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 256, + "id": 262, "nodeType": "ExpressionStatement", - "src": "3974:45:1" + "src": "4014:45:1" }, { - "assignments": [258], + "assignments": [264], "declarations": [ { "constant": false, - "id": 258, + "id": 264, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 273, - "src": "4034:17:1", + "scope": 279, + "src": "4074:17:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 257, + "id": 263, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4034:4:1", + "referencedDeclaration": 1134, + "src": "4074:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 262, + "id": 268, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 259, + "id": 265, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4054:5:1", + "referencedDeclaration": 1141, + "src": "4094:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 261, + "id": 267, "indexExpression": { - "argumentTypes": null, - "id": 260, + "id": 266, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 225, - "src": "4060:6:1", + "referencedDeclaration": 231, + "src": "4100:6:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10350,47 +10086,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4054:13:1", + "src": "4094:13:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "4034:33:1" + "src": "4074:33:1" }, { "expression": { - "argumentTypes": null, - "id": 271, + "id": 277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 263, + "id": 269, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "4081:4:1", + "referencedDeclaration": 264, + "src": "4121:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 265, + "id": 271, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4081:10:1", + "referencedDeclaration": 1133, + "src": "4121:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10399,16 +10132,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 269, + "id": 275, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 231, - "src": "4109:5:1", + "referencedDeclaration": 237, + "src": "4149:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10423,49 +10154,47 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 266, + "id": 272, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "4094:4:1", + "referencedDeclaration": 264, + "src": "4134:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 267, + "id": 273, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4094:10:1", + "referencedDeclaration": 1133, + "src": "4134:10:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 268, + "id": 274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "4094:14:1", + "referencedDeclaration": 3647, + "src": "4134:14:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 270, + "id": 276, "isConstant": false, "isLValue": false, "isPure": false, @@ -10473,43 +10202,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4094:21:1", + "src": "4134:21:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4081:34:1", + "src": "4121:34:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 272, + "id": 278, "nodeType": "ExpressionStatement", - "src": "4081:34:1" + "src": "4121:34:1" } ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 220, + "id": 226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 218, + "id": 224, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3346:1:1", + "referencedDeclaration": 221, + "src": "3386:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10518,35 +10246,35 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, - "id": 219, + "id": 225, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "3350:18:1", + "referencedDeclaration": 1143, + "src": "3390:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3346:22:1", + "src": "3386:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 274, + "id": 280, "initializationExpression": { - "assignments": [215], + "assignments": [221], "declarations": [ { "constant": false, - "id": 215, + "id": 221, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 274, - "src": "3331:9:1", + "scope": 280, + "src": "3371:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10554,32 +10282,29 @@ "typeString": "uint256" }, "typeName": { - "id": 214, + "id": 220, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3331:7:1", + "src": "3371:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 217, + "id": 223, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 216, + "id": 222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3343:1:1", - "subdenomination": null, + "src": "3383:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10587,12 +10312,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3331:13:1" + "src": "3371:13:1" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 222, + "id": 228, "isConstant": false, "isLValue": false, "isPure": false, @@ -10600,15 +10324,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3370:3:1", + "src": "3410:3:1", "subExpression": { - "argumentTypes": null, - "id": 221, + "id": 227, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "3370:1:1", + "referencedDeclaration": 221, + "src": "3410:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10619,45 +10342,42 @@ "typeString": "uint256" } }, - "id": 223, + "id": 229, "nodeType": "ExpressionStatement", - "src": "3370:3:1" + "src": "3410:3:1" }, "nodeType": "ForStatement", - "src": "3326:801:1" + "src": "3366:801:1" }, { "expression": { - "argumentTypes": null, - "id": 279, + "id": 285, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 275, + "id": 281, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4178:5:1", + "referencedDeclaration": 207, + "src": "4218:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 277, + "id": 283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "voted", "nodeType": "MemberAccess", - "referencedDeclaration": 76, - "src": "4178:11:1", + "referencedDeclaration": 77, + "src": "4218:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10666,90 +10386,83 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 278, + "id": 284, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4192:4:1", - "subdenomination": null, + "src": "4232:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4178:18:1", + "src": "4218:18:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 280, + "id": 286, "nodeType": "ExpressionStatement", - "src": "4178:18:1" + "src": "4218:18:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 282, + "id": 288, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4222:5:1", + "referencedDeclaration": 207, + "src": "4262:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 283, + "id": 289, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 70, - "src": "4222:8:1", + "referencedDeclaration": 71, + "src": "4262:8:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 284, + "id": 290, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 201, - "src": "4232:5:1", + "referencedDeclaration": 207, + "src": "4272:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 285, + "id": 291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "judgeAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 72, - "src": "4232:18:1", + "referencedDeclaration": 73, + "src": "4272:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10767,18 +10480,18 @@ "typeString": "address" } ], - "id": 281, + "id": 287, "name": "JudgeVoted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "4211:10:1", + "referencedDeclaration": 107, + "src": "4251:10:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 286, + "id": 292, "isConstant": false, "isLValue": false, "isPure": false, @@ -10786,75 +10499,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4211:40:1", + "src": "4251:40:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 287, + "id": 293, "nodeType": "EmitStatement", - "src": "4206:45:1" + "src": "4246:45:1" } ] }, - "documentation": "@notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\nteams must be submitted once.\n@param teamIds Array of the ids associated with each team that is going to be evaluated.\n@param teamGrades Array of the grades given by the judge for each team.\n@dev The position of teamId and teamGrade must be the same in the array.\nFor example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\nmust be sent at position \"5\" in {teamGrades} array.", - "id": 289, + "documentation": { + "id": 169, + "nodeType": "StructuredDocumentation", + "src": "2140:598:1", + "text": "@notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all\nteams must be submitted once.\n@param teamIds Array of the ids associated with each team that is going to be evaluated.\n@param teamGrades Array of the grades given by the judge for each team.\n@dev The position of teamId and teamGrade must be the same in the array.\nFor example, if teamId \"1\" is sent at {teamIds} array position \"5\" (zero-based), the grade for team \"1\"\nmust be sent at position \"5\" in {teamGrades} array." + }, + "functionSelector": "3e091f64", + "id": 295, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 172, + "id": 178, "modifierName": { - "argumentTypes": null, - "id": 171, + "id": 177, "name": "evaluationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2811:16:1", + "referencedDeclaration": 127, + "src": "2851:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2811:16:1" + "src": "2851:16:1" }, { - "arguments": null, - "id": 174, + "id": 180, "modifierName": { - "argumentTypes": null, - "id": 173, + "id": 179, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "2836:9:1", + "referencedDeclaration": 3355, + "src": "2876:9:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2836:9:1" + "src": "2876:9:1" } ], "name": "submitEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 170, + "id": 176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 166, + "id": 172, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2729:26:1", + "scope": 295, + "src": "2769:26:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10863,34 +10580,33 @@ }, "typeName": { "baseType": { - "id": 164, + "id": 170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2729:7:1", + "src": "2769:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 165, - "length": null, + "id": 171, "nodeType": "ArrayTypeName", - "src": "2729:9:1", + "src": "2769:9:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 169, + "id": 175, + "mutability": "mutable", "name": "teamGrades", "nodeType": "VariableDeclaration", - "scope": 289, - "src": "2757:27:1", + "scope": 295, + "src": "2797:27:1", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10899,71 +10615,66 @@ }, "typeName": { "baseType": { - "id": 167, + "id": 173, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2757:5:1", + "src": "2797:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 168, - "length": null, + "id": 174, "nodeType": "ArrayTypeName", - "src": "2757:7:1", + "src": "2797:7:1", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2728:57:1" + "src": "2768:57:1" }, "returnParameters": { - "id": 175, + "id": 181, "nodeType": "ParameterList", "parameters": [], - "src": "2850:0:1" + "src": "2890:0:1" }, - "scope": 648, - "src": "2703:1555:1", + "scope": 674, + "src": "2743:1555:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 443, + "id": 450, "nodeType": "Block", - "src": "4604:1478:1", + "src": "4644:1478:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 305, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 303, + "id": 310, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "4622:18:1", + "referencedDeclaration": 1143, + "src": "4662:18:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10972,41 +10683,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 304, + "id": 311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4643:1:1", - "subdenomination": null, + "src": "4683:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4622:22:1", + "src": "4662:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f207465616d732072656769737465726564", - "id": 306, + "id": 313, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4646:21:1", - "subdenomination": null, + "src": "4686:21:1", "typeDescriptions": { "typeIdentifier": "t_stringliteral_85d19e51bab406e77039d57c5dfda7be4b76fdb99d80c2183e26b8e3147c9f38", "typeString": "literal_string \"No teams registered\"" @@ -11025,18 +10732,18 @@ "typeString": "literal_string \"No teams registered\"" } ], - "id": 302, + "id": 309, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4614:7:1", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4654:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 307, + "id": 314, "isConstant": false, "isLValue": false, "isPure": false, @@ -11044,217 +10751,205 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4614:54:1", + "src": "4654:54:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 308, + "id": 315, "nodeType": "ExpressionStatement", - "src": "4614:54:1" + "src": "4654:54:1" }, { - "assignments": [310], + "assignments": [317], "declarations": [ { "constant": false, - "id": 310, + "id": 317, + "mutability": "mutable", "name": "curTeam", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4678:19:1", + "scope": 450, + "src": "4718:19:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 309, + "id": 316, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4678:4:1", + "referencedDeclaration": 1134, + "src": "4718:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 311, - "initialValue": null, + "id": 318, "nodeType": "VariableDeclarationStatement", - "src": "4678:19:1" + "src": "4718:19:1" }, { - "assignments": [313], + "assignments": [320], "declarations": [ { "constant": false, - "id": 313, + "id": 320, + "mutability": "mutable", "name": "tmpFirst", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4707:20:1", + "scope": 450, + "src": "4747:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 312, + "id": 319, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4707:4:1", + "referencedDeclaration": 1134, + "src": "4747:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 314, - "initialValue": null, + "id": 321, "nodeType": "VariableDeclarationStatement", - "src": "4707:20:1" + "src": "4747:20:1" }, { - "assignments": [316], + "assignments": [323], "declarations": [ { "constant": false, - "id": 316, + "id": 323, + "mutability": "mutable", "name": "tmpSecond", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4737:21:1", + "scope": 450, + "src": "4777:21:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 315, + "id": 322, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4737:4:1", + "referencedDeclaration": 1134, + "src": "4777:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 317, - "initialValue": null, + "id": 324, "nodeType": "VariableDeclarationStatement", - "src": "4737:21:1" + "src": "4777:21:1" }, { - "assignments": [319], + "assignments": [326], "declarations": [ { "constant": false, - "id": 319, + "id": 326, + "mutability": "mutable", "name": "tmpThird", "nodeType": "VariableDeclaration", - "scope": 443, - "src": "4768:20:1", + "scope": 450, + "src": "4808:20:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 318, + "id": 325, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4768:4:1", + "referencedDeclaration": 1134, + "src": "4808:4:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 320, - "initialValue": null, + "id": 327, "nodeType": "VariableDeclarationStatement", - "src": "4768:20:1" + "src": "4808:20:1" }, { "body": { - "id": 395, + "id": 402, "nodeType": "Block", - "src": "4842:838:1", + "src": "4882:838:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 336, + "id": 343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 332, + "id": 339, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4856:7:1", + "referencedDeclaration": 317, + "src": "4896:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 333, + "id": 340, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4866:5:1", + "referencedDeclaration": 1141, + "src": "4906:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 335, + "id": 342, "indexExpression": { - "argumentTypes": null, - "id": 334, + "id": 341, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4872:1:1", + "referencedDeclaration": 329, + "src": "4912:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11265,37 +10960,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4866:8:1", + "src": "4906:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "src": "4856:18:1", + "src": "4896:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 337, + "id": 344, "nodeType": "ExpressionStatement", - "src": "4856:18:1" + "src": "4896:18:1" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 346, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 340, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, @@ -11303,31 +10996,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4892:17:1", + "src": "4932:17:1", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 338, + "id": 345, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4893:7:1", + "referencedDeclaration": 317, + "src": "4933:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 339, + "id": 346, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "4893:16:1", + "referencedDeclaration": 1131, + "src": "4933:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11341,40 +11032,37 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 345, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 341, + "id": 348, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "4913:7:1", + "referencedDeclaration": 317, + "src": "4953:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 342, + "id": 349, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4913:13:1", + "referencedDeclaration": 1133, + "src": "4953:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11383,99 +11071,93 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 343, + "id": 350, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "4929:8:1", + "referencedDeclaration": 326, + "src": "4969:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 344, + "id": 351, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4929:14:1", + "referencedDeclaration": 1133, + "src": "4969:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4913:30:1", + "src": "4953:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4892:51:1", + "src": "4932:51:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 349, + "id": 356, "nodeType": "IfStatement", - "src": "4888:213:1", + "src": "4928:213:1", "trueBody": { - "id": 348, + "id": 355, "nodeType": "Block", - "src": "4945:156:1", + "src": "4985:156:1", "statements": [ { - "id": 347, + "id": 354, "nodeType": "Continue", - "src": "5078:8:1" + "src": "5118:8:1" } ] } }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 354, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 350, + "id": 357, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5285:7:1", + "referencedDeclaration": 317, + "src": "5325:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 351, + "id": 358, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5285:13:1", + "referencedDeclaration": 1133, + "src": "5325:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11484,35 +11166,33 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 352, + "id": 359, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5301:8:1", + "referencedDeclaration": 320, + "src": "5341:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 353, + "id": 360, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5301:14:1", + "referencedDeclaration": 1133, + "src": "5341:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5285:30:1", + "src": "5325:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11520,40 +11200,37 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 372, + "id": 379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 368, + "id": 375, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5454:7:1", + "referencedDeclaration": 317, + "src": "5494:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 369, + "id": 376, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5454:13:1", + "referencedDeclaration": 1133, + "src": "5494:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11562,35 +11239,33 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 370, + "id": 377, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5470:9:1", + "referencedDeclaration": 323, + "src": "5510:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 371, + "id": 378, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5470:15:1", + "referencedDeclaration": 1133, + "src": "5510:15:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5454:31:1", + "src": "5494:31:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11598,40 +11273,37 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 386, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 382, + "id": 389, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5587:7:1", + "referencedDeclaration": 317, + "src": "5627:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 383, + "id": 390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5587:13:1", + "referencedDeclaration": 1133, + "src": "5627:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11640,346 +11312,325 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 384, + "id": 391, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5603:8:1", + "referencedDeclaration": 326, + "src": "5643:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 385, + "id": 392, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5603:14:1", + "referencedDeclaration": 1133, + "src": "5643:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5587:30:1", + "src": "5627:30:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 392, + "id": 399, "nodeType": "IfStatement", - "src": "5583:87:1", + "src": "5623:87:1", "trueBody": { - "id": 391, + "id": 398, "nodeType": "Block", - "src": "5619:51:1", + "src": "5659:51:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 389, + "id": 396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 387, + "id": 394, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5637:8:1", + "referencedDeclaration": 326, + "src": "5677:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 388, + "id": 395, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5648:7:1", + "referencedDeclaration": 317, + "src": "5688:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5637:18:1", + "src": "5677:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 390, + "id": 397, "nodeType": "ExpressionStatement", - "src": "5637:18:1" + "src": "5677:18:1" } ] } }, - "id": 393, + "id": 400, "nodeType": "IfStatement", - "src": "5450:220:1", + "src": "5490:220:1", "trueBody": { - "id": 381, + "id": 388, "nodeType": "Block", - "src": "5487:90:1", + "src": "5527:90:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 375, + "id": 382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 373, + "id": 380, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5505:8:1", + "referencedDeclaration": 326, + "src": "5545:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 374, + "id": 381, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5516:9:1", + "referencedDeclaration": 323, + "src": "5556:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5505:20:1", + "src": "5545:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 376, + "id": 383, "nodeType": "ExpressionStatement", - "src": "5505:20:1" + "src": "5545:20:1" }, { "expression": { - "argumentTypes": null, - "id": 379, + "id": 386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 377, + "id": 384, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5543:9:1", + "referencedDeclaration": 323, + "src": "5583:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 378, + "id": 385, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5555:7:1", + "referencedDeclaration": 317, + "src": "5595:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5543:19:1", + "src": "5583:19:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 380, + "id": 387, "nodeType": "ExpressionStatement", - "src": "5543:19:1" + "src": "5583:19:1" } ] } }, - "id": 394, + "id": 401, "nodeType": "IfStatement", - "src": "5281:389:1", + "src": "5321:389:1", "trueBody": { - "id": 367, + "id": 374, "nodeType": "Block", - "src": "5317:127:1", + "src": "5357:127:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 357, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 355, + "id": 362, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5335:8:1", + "referencedDeclaration": 326, + "src": "5375:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 356, + "id": 363, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5346:9:1", + "referencedDeclaration": 323, + "src": "5386:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5335:20:1", + "src": "5375:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 358, + "id": 365, "nodeType": "ExpressionStatement", - "src": "5335:20:1" + "src": "5375:20:1" }, { "expression": { - "argumentTypes": null, - "id": 361, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 359, + "id": 366, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5373:9:1", + "referencedDeclaration": 323, + "src": "5413:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 360, + "id": 367, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5385:8:1", + "referencedDeclaration": 320, + "src": "5425:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5373:20:1", + "src": "5413:20:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 362, + "id": 369, "nodeType": "ExpressionStatement", - "src": "5373:20:1" + "src": "5413:20:1" }, { "expression": { - "argumentTypes": null, - "id": 365, + "id": 372, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 363, + "id": 370, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5411:8:1", + "referencedDeclaration": 320, + "src": "5451:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 364, + "id": 371, "name": "curTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "5422:7:1", + "referencedDeclaration": 317, + "src": "5462:7:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5411:18:1", + "src": "5451:18:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 366, + "id": 373, "nodeType": "ExpressionStatement", - "src": "5411:18:1" + "src": "5451:18:1" } ] } @@ -11987,24 +11638,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 328, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 325, + "id": 332, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4819:1:1", + "referencedDeclaration": 329, + "src": "4859:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12013,51 +11662,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 326, + "id": 333, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "4823:5:1", + "referencedDeclaration": 1141, + "src": "4863:5:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 327, + "id": 334, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4823:12:1", + "src": "4863:12:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4819:16:1", + "src": "4859:16:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 396, + "id": 403, "initializationExpression": { - "assignments": [322], + "assignments": [329], "declarations": [ { "constant": false, - "id": 322, + "id": 329, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 396, - "src": "4804:9:1", + "scope": 403, + "src": "4844:9:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12065,32 +11712,29 @@ "typeString": "uint256" }, "typeName": { - "id": 321, + "id": 328, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4804:7:1", + "src": "4844:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 324, + "id": 331, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 323, + "id": 330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4816:1:1", - "subdenomination": null, + "src": "4856:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12098,12 +11742,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4804:13:1" + "src": "4844:13:1" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 330, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, @@ -12111,15 +11754,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4837:3:1", + "src": "4877:3:1", "subExpression": { - "argumentTypes": null, - "id": 329, + "id": 336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 322, - "src": "4837:1:1", + "referencedDeclaration": 329, + "src": "4877:1:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12130,167 +11772,156 @@ "typeString": "uint256" } }, - "id": 331, + "id": 338, "nodeType": "ExpressionStatement", - "src": "4837:3:1" + "src": "4877:3:1" }, "nodeType": "ForStatement", - "src": "4799:881:1" + "src": "4839:881:1" }, { "expression": { - "argumentTypes": null, - "id": 399, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 397, + "id": 404, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5690:10:1", + "referencedDeclaration": 89, + "src": "5730:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 398, + "id": 405, "name": "tmpFirst", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "5703:8:1", + "referencedDeclaration": 320, + "src": "5743:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5690:21:1", + "src": "5730:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 400, + "id": 407, "nodeType": "ExpressionStatement", - "src": "5690:21:1" + "src": "5730:21:1" }, { "expression": { - "argumentTypes": null, - "id": 403, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 401, + "id": 408, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5721:11:1", + "referencedDeclaration": 91, + "src": "5761:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 402, + "id": 409, "name": "tmpSecond", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "5735:9:1", + "referencedDeclaration": 323, + "src": "5775:9:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5721:23:1", + "src": "5761:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 404, + "id": 411, "nodeType": "ExpressionStatement", - "src": "5721:23:1" + "src": "5761:23:1" }, { "expression": { - "argumentTypes": null, - "id": 407, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 405, + "id": 412, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5754:10:1", + "referencedDeclaration": 93, + "src": "5794:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 406, + "id": 413, "name": "tmpThird", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 319, - "src": "5767:8:1", + "referencedDeclaration": 326, + "src": "5807:8:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "src": "5754:21:1", + "src": "5794:21:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 408, + "id": 415, "nodeType": "ExpressionStatement", - "src": "5754:21:1" + "src": "5794:21:1" }, { "expression": { - "argumentTypes": null, - "id": 411, + "id": 418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 409, + "id": 416, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "5785:13:1", + "referencedDeclaration": 95, + "src": "5825:13:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12299,136 +11930,125 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 410, + "id": 417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5801:4:1", - "subdenomination": null, + "src": "5841:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5785:20:1", + "src": "5825:20:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 412, + "id": 419, "nodeType": "ExpressionStatement", - "src": "5785:20:1" + "src": "5825:20:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 414, + "id": 421, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5835:10:1", + "referencedDeclaration": 89, + "src": "5875:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 415, + "id": 422, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "5835:13:1", + "referencedDeclaration": 1123, + "src": "5875:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 416, + "id": 423, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5850:10:1", + "referencedDeclaration": 89, + "src": "5890:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 417, + "id": 424, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5850:22:1", + "referencedDeclaration": 1127, + "src": "5890:22:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 418, + "id": 425, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5874:10:1", + "referencedDeclaration": 89, + "src": "5914:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 419, + "id": 426, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5874:16:1", + "referencedDeclaration": 1133, + "src": "5914:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "31", - "id": 420, + "id": 427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5892:1:1", - "subdenomination": null, + "src": "5932:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -12455,18 +12075,18 @@ "typeString": "int_const 1" } ], - "id": 413, + "id": 420, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "5820:14:1", + "referencedDeclaration": 118, + "src": "5860:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 421, + "id": 428, "isConstant": false, "isLValue": false, "isPure": false, @@ -12474,119 +12094,111 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5820:74:1", + "src": "5860:74:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 422, + "id": 429, "nodeType": "EmitStatement", - "src": "5815:79:1" + "src": "5855:79:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 424, + "id": 431, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5924:11:1", + "referencedDeclaration": 91, + "src": "5964:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 425, + "id": 432, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "5924:14:1", + "referencedDeclaration": 1123, + "src": "5964:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 426, + "id": 433, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5940:11:1", + "referencedDeclaration": 91, + "src": "5980:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 427, + "id": 434, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5940:23:1", + "referencedDeclaration": 1127, + "src": "5980:23:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 428, + "id": 435, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5965:11:1", + "referencedDeclaration": 91, + "src": "6005:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 429, + "id": 436, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "5965:17:1", + "referencedDeclaration": 1133, + "src": "6005:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "32", - "id": 430, + "id": 437, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5984:1:1", - "subdenomination": null, + "src": "6024:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -12613,18 +12225,18 @@ "typeString": "int_const 2" } ], - "id": 423, + "id": 430, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "5909:14:1", + "referencedDeclaration": 118, + "src": "5949:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 431, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -12632,119 +12244,111 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5909:77:1", + "src": "5949:77:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 432, + "id": 439, "nodeType": "EmitStatement", - "src": "5904:82:1" + "src": "5944:82:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 434, + "id": 441, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6016:10:1", + "referencedDeclaration": 93, + "src": "6056:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 435, + "id": 442, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6016:13:1", + "referencedDeclaration": 1123, + "src": "6056:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 436, + "id": 443, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6031:10:1", + "referencedDeclaration": 93, + "src": "6071:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 437, + "id": 444, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "6031:22:1", + "referencedDeclaration": 1127, + "src": "6071:22:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 438, + "id": 445, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6055:10:1", + "referencedDeclaration": 93, + "src": "6095:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 439, + "id": 446, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "6055:16:1", + "referencedDeclaration": 1133, + "src": "6095:16:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "33", - "id": 440, + "id": 447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6073:1:1", - "subdenomination": null, + "src": "6113:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" @@ -12771,18 +12375,18 @@ "typeString": "int_const 3" } ], - "id": 433, + "id": 440, "name": "WinnerAnnouced", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "6001:14:1", + "referencedDeclaration": 118, + "src": "6041:14:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint8_$returns$__$", "typeString": "function (uint256,address,uint256,uint8)" } }, - "id": 441, + "id": 448, "isConstant": false, "isLValue": false, "isPure": false, @@ -12790,281 +12394,278 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6001:74:1", + "src": "6041:74:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 442, + "id": 449, "nodeType": "EmitStatement", - "src": "5996:79:1" + "src": "6036:79:1" } ] }, - "documentation": "@notice Published the ranking results of the contest.\n@dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).", - "id": 444, + "documentation": { + "id": 296, + "nodeType": "StructuredDocumentation", + "src": "4304:157:1", + "text": "@notice Published the ranking results of the contest.\n@dev emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place)." + }, + "functionSelector": "90d768e4", + "id": 451, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 292, + "id": 299, "modifierName": { - "argumentTypes": null, - "id": 291, + "id": 298, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "4474:20:1", + "referencedDeclaration": 1205, + "src": "4514:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4474:20:1" + "src": "4514:20:1" }, { - "arguments": null, - "id": 294, + "id": 301, "modifierName": { - "argumentTypes": null, - "id": 293, + "id": 300, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "4503:18:1", + "referencedDeclaration": 1224, + "src": "4543:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4503:18:1" + "src": "4543:18:1" }, { - "arguments": null, - "id": 296, + "id": 303, "modifierName": { - "argumentTypes": null, - "id": 295, + "id": 302, "name": "evaluationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4530:18:1", + "referencedDeclaration": 137, + "src": "4570:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4530:18:1" + "src": "4570:18:1" }, { - "arguments": null, - "id": 298, + "id": 305, "modifierName": { - "argumentTypes": null, - "id": 297, + "id": 304, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "4557:13:1", + "referencedDeclaration": 3465, + "src": "4597:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4557:13:1" + "src": "4597:13:1" }, { - "arguments": null, - "id": 300, + "id": 307, "modifierName": { - "argumentTypes": null, - "id": 299, + "id": 306, "name": "whenRankNotPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 152, - "src": "4579:20:1", + "referencedDeclaration": 156, + "src": "4619:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4579:20:1" + "src": "4619:20:1" } ], "name": "publishRank", "nodeType": "FunctionDefinition", "parameters": { - "id": 290, + "id": 297, "nodeType": "ParameterList", "parameters": [], - "src": "4446:2:1" + "src": "4486:2:1" }, "returnParameters": { - "id": 301, + "id": 308, "nodeType": "ParameterList", "parameters": [], - "src": "4604:0:1" + "src": "4644:0:1" }, - "scope": 648, - "src": "4426:1656:1", + "scope": 674, + "src": "4466:1656:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 461, + "id": 469, "nodeType": "Block", - "src": "6358:70:1", + "src": "6398:70:1", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 453, + "id": 461, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "6376:10:1", + "referencedDeclaration": 89, + "src": "6416:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 454, + "id": 462, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6376:13:1", + "referencedDeclaration": 1123, + "src": "6416:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 455, + "id": 463, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "6391:11:1", + "referencedDeclaration": 91, + "src": "6431:11:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 456, + "id": 464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6391:14:1", + "referencedDeclaration": 1123, + "src": "6431:14:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 457, + "id": 465, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "6407:10:1", + "referencedDeclaration": 93, + "src": "6447:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 458, + "id": 466, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6407:13:1", + "referencedDeclaration": 1123, + "src": "6447:13:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 459, + "id": 467, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "6375:46:1", + "src": "6415:46:1", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256,uint256)" } }, - "functionReturnParameters": 452, - "id": 460, + "functionReturnParameters": 460, + "id": 468, "nodeType": "Return", - "src": "6368:53:1" + "src": "6408:53:1" } ] }, - "documentation": "@notice Gets the id of the winner teams.\n@return {uint256} First place's id\n@return {uint256} Second place's id\n@return {uint256} Third place's id", - "id": 462, + "documentation": { + "id": 452, + "nodeType": "StructuredDocumentation", + "src": "6128:190:1", + "text": "@notice Gets the id of the winner teams.\n@return {uint256} First place's id\n@return {uint256} Second place's id\n@return {uint256} Third place's id" + }, + "functionSelector": "737a6340", + "id": 470, "implemented": true, "kind": "function", "modifiers": [], "name": "getWinnersIds", "nodeType": "FunctionDefinition", "parameters": { - "id": 445, + "id": 453, "nodeType": "ParameterList", "parameters": [], - "src": "6305:2:1" + "src": "6345:2:1" }, "returnParameters": { - "id": 452, + "id": 460, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 447, + "id": 455, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6331:7:1", + "scope": 470, + "src": "6371:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13072,25 +12673,25 @@ "typeString": "uint256" }, "typeName": { - "id": 446, + "id": 454, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6331:7:1", + "src": "6371:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 449, + "id": 457, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6340:7:1", + "scope": 470, + "src": "6380:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13098,25 +12699,25 @@ "typeString": "uint256" }, "typeName": { - "id": 448, + "id": 456, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6340:7:1", + "src": "6380:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 451, + "id": 459, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 462, - "src": "6349:7:1", + "scope": 470, + "src": "6389:7:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13124,67 +12725,65 @@ "typeString": "uint256" }, "typeName": { - "id": 450, + "id": 458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6349:7:1", + "src": "6389:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "6330:27:1" + "src": "6370:27:1" }, - "scope": 648, - "src": "6283:145:1", + "scope": 674, + "src": "6323:145:1", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1488], "body": { - "id": 474, + "id": 484, "nodeType": "Block", - "src": "6630:43:1", + "src": "6679:43:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 469, + "id": 479, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "6640:5:1", + "referencedDeclaration": 4294967271, + "src": "6689:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 471, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_closeRegistration", "nodeType": "MemberAccess", - "referencedDeclaration": 1516, - "src": "6640:24:1", + "referencedDeclaration": 1583, + "src": "6689:24:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 472, + "id": 482, "isConstant": false, "isLValue": false, "isPure": false, @@ -13192,122 +12791,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6640:26:1", + "src": "6689:26:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 473, + "id": 483, "nodeType": "ExpressionStatement", - "src": "6640:26:1" + "src": "6689:26:1" } ] }, - "documentation": "@notice Closes the registration process\n@dev Overwritten to add modifier for access control.", - "id": 475, + "documentation": { + "id": 471, + "nodeType": "StructuredDocumentation", + "src": "6474:120:1", + "text": "@notice Closes the registration process\n@dev Overwritten to add modifier for access control." + }, + "functionSelector": "7dc673bc", + "id": 485, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 465, + "id": 475, "modifierName": { - "argumentTypes": null, - "id": 464, + "id": 474, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "6597:18:1", + "referencedDeclaration": 1195, + "src": "6646:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6597:18:1" + "src": "6646:18:1" }, { - "arguments": null, - "id": 467, + "id": 477, "modifierName": { - "argumentTypes": null, - "id": 466, + "id": 476, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "6616:13:1", + "referencedDeclaration": 3465, + "src": "6665:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6616:13:1" + "src": "6665:13:1" } ], "name": "closeRegistration", "nodeType": "FunctionDefinition", + "overrides": { + "id": 473, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6637:8:1" + }, "parameters": { - "id": 463, + "id": 472, "nodeType": "ParameterList", "parameters": [], - "src": "6585:2:1" + "src": "6625:2:1" }, "returnParameters": { - "id": 468, + "id": 478, "nodeType": "ParameterList", "parameters": [], - "src": "6630:0:1" + "src": "6679:0:1" }, - "scope": 648, - "src": "6559:114:1", + "scope": 674, + "src": "6599:123:1", "stateMutability": "nonpayable", - "superFunction": 1430, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1498], "body": { - "id": 487, + "id": 499, "nodeType": "Block", - "src": "6875:42:1", + "src": "6933:42:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 482, + "id": 494, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "6885:5:1", + "referencedDeclaration": 4294967271, + "src": "6943:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 484, + "id": 496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_openRegistration", "nodeType": "MemberAccess", - "referencedDeclaration": 1528, - "src": "6885:23:1", + "referencedDeclaration": 1596, + "src": "6943:23:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 485, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -13315,122 +12922,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6885:25:1", + "src": "6943:25:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 486, + "id": 498, "nodeType": "ExpressionStatement", - "src": "6885:25:1" + "src": "6943:25:1" } ] }, - "documentation": "@notice Opens the registration process\n@dev Overwritten to add modifier for access control.", - "id": 488, + "documentation": { + "id": 486, + "nodeType": "StructuredDocumentation", + "src": "6728:119:1", + "text": "@notice Opens the registration process\n@dev Overwritten to add modifier for access control." + }, + "functionSelector": "d06e4ee7", + "id": 500, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 478, + "id": 490, "modifierName": { - "argumentTypes": null, - "id": 477, + "id": 489, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "6840:20:1", + "referencedDeclaration": 1205, + "src": "6898:20:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6840:20:1" + "src": "6898:20:1" }, { - "arguments": null, - "id": 480, + "id": 492, "modifierName": { - "argumentTypes": null, - "id": 479, + "id": 491, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "6861:13:1", + "referencedDeclaration": 3465, + "src": "6919:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6861:13:1" + "src": "6919:13:1" } ], "name": "openRegistration", "nodeType": "FunctionDefinition", + "overrides": { + "id": 488, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6889:8:1" + }, "parameters": { - "id": 476, + "id": 487, "nodeType": "ParameterList", "parameters": [], - "src": "6828:2:1" + "src": "6877:2:1" }, "returnParameters": { - "id": 481, + "id": 493, "nodeType": "ParameterList", "parameters": [], - "src": "6875:0:1" + "src": "6933:0:1" }, - "scope": 648, - "src": "6803:114:1", + "scope": 674, + "src": "6852:123:1", "stateMutability": "nonpayable", - "superFunction": 1439, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1517], "body": { - "id": 500, + "id": 514, "nodeType": "Block", - "src": "7176:41:1", + "src": "7243:41:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 495, + "id": 509, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "7186:5:1", + "referencedDeclaration": 4294967271, + "src": "7253:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 497, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_closeSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 1540, - "src": "7186:22:1", + "referencedDeclaration": 1608, + "src": "7253:22:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 498, + "id": 512, "isConstant": false, "isLValue": false, "isPure": false, @@ -13438,122 +13053,130 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7186:24:1", + "src": "7253:24:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 499, + "id": 513, "nodeType": "ExpressionStatement", - "src": "7186:24:1" + "src": "7253:24:1" } ] }, - "documentation": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 501, + "documentation": { + "id": 501, + "nodeType": "StructuredDocumentation", + "src": "6981:181:1", + "text": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ffc6ff1e", + "id": 515, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 491, + "id": 505, "modifierName": { - "argumentTypes": null, - "id": 490, + "id": 504, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "7145:16:1", + "referencedDeclaration": 1214, + "src": "7212:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7145:16:1" + "src": "7212:16:1" }, { - "arguments": null, - "id": 493, + "id": 507, "modifierName": { - "argumentTypes": null, - "id": 492, + "id": 506, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7162:13:1", + "referencedDeclaration": 3465, + "src": "7229:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7162:13:1" + "src": "7229:13:1" } ], "name": "closeSubmission", "nodeType": "FunctionDefinition", + "overrides": { + "id": 503, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7203:8:1" + }, "parameters": { - "id": 489, + "id": 502, "nodeType": "ParameterList", "parameters": [], - "src": "7133:2:1" + "src": "7191:2:1" }, "returnParameters": { - "id": 494, + "id": 508, "nodeType": "ParameterList", "parameters": [], - "src": "7176:0:1" + "src": "7243:0:1" }, - "scope": 648, - "src": "7109:108:1", + "scope": 674, + "src": "7167:117:1", "stateMutability": "nonpayable", - "superFunction": 1456, + "virtual": false, "visibility": "external" }, { + "baseFunctions": [1527], "body": { - "id": 513, + "id": 529, "nodeType": "Block", - "src": "7476:40:1", + "src": "7552:40:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 508, + "id": 524, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "7486:5:1", + "referencedDeclaration": 4294967271, + "src": "7562:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 510, + "id": 526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_openSubmission", "nodeType": "MemberAccess", - "referencedDeclaration": 1552, - "src": "7486:21:1", + "referencedDeclaration": 1621, + "src": "7562:21:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 511, + "id": 527, "isConstant": false, "isLValue": false, "isPure": false, @@ -13561,106 +13184,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7486:23:1", + "src": "7562:23:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 512, + "id": 528, "nodeType": "ExpressionStatement", - "src": "7486:23:1" + "src": "7562:23:1" } ] }, - "documentation": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 514, + "documentation": { + "id": 516, + "nodeType": "StructuredDocumentation", + "src": "7290:180:1", + "text": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "58e2f50e", + "id": 530, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 504, + "id": 520, "modifierName": { - "argumentTypes": null, - "id": 503, + "id": 519, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "7443:18:1", + "referencedDeclaration": 1224, + "src": "7519:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7443:18:1" + "src": "7519:18:1" }, { - "arguments": null, - "id": 506, + "id": 522, "modifierName": { - "argumentTypes": null, - "id": 505, + "id": 521, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7462:13:1", + "referencedDeclaration": 3465, + "src": "7538:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7462:13:1" + "src": "7538:13:1" } ], "name": "openSubmission", "nodeType": "FunctionDefinition", + "overrides": { + "id": 518, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7510:8:1" + }, "parameters": { - "id": 502, + "id": 517, "nodeType": "ParameterList", "parameters": [], - "src": "7431:2:1" + "src": "7498:2:1" }, "returnParameters": { - "id": 507, + "id": 523, "nodeType": "ParameterList", "parameters": [], - "src": "7476:0:1" + "src": "7552:0:1" }, - "scope": 648, - "src": "7408:108:1", + "scope": 674, + "src": "7475:117:1", "stateMutability": "nonpayable", - "superFunction": 1465, + "virtual": false, "visibility": "external" }, { "body": { - "id": 524, + "id": 541, "nodeType": "Block", - "src": "7766:35:1", + "src": "7842:35:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 521, + "id": 538, "name": "_closeEvaluation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "7776:16:1", + "referencedDeclaration": 576, + "src": "7852:16:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 522, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -13668,106 +13299,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7776:18:1", + "src": "7852:18:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 523, + "id": 540, "nodeType": "ExpressionStatement", - "src": "7776:18:1" + "src": "7852:18:1" } ] }, - "documentation": "@notice Closes the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 525, + "documentation": { + "id": 531, + "nodeType": "StructuredDocumentation", + "src": "7598:172:1", + "text": "@notice Closes the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ae237c77", + "id": 542, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 517, + "id": 534, "modifierName": { - "argumentTypes": null, - "id": 516, + "id": 533, "name": "evaluationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "7735:16:1", + "referencedDeclaration": 127, + "src": "7811:16:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7735:16:1" + "src": "7811:16:1" }, { - "arguments": null, - "id": 519, + "id": 536, "modifierName": { - "argumentTypes": null, - "id": 518, + "id": 535, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "7752:13:1", + "referencedDeclaration": 3465, + "src": "7828:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7752:13:1" + "src": "7828:13:1" } ], "name": "closeEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 515, + "id": 532, "nodeType": "ParameterList", "parameters": [], - "src": "7723:2:1" + "src": "7799:2:1" }, "returnParameters": { - "id": 520, + "id": 537, "nodeType": "ParameterList", "parameters": [], - "src": "7766:0:1" + "src": "7842:0:1" }, - "scope": 648, - "src": "7699:102:1", + "scope": 674, + "src": "7775:102:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 535, + "id": 553, "nodeType": "Block", - "src": "8051:34:1", + "src": "8127:34:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 532, + "id": 550, "name": "_openEvaluation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 568, - "src": "8061:15:1", + "referencedDeclaration": 589, + "src": "8137:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 533, + "id": 551, "isConstant": false, "isLValue": false, "isPure": false, @@ -13775,133 +13408,142 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8061:17:1", + "src": "8137:17:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 534, + "id": 552, "nodeType": "ExpressionStatement", - "src": "8061:17:1" + "src": "8137:17:1" } ] }, - "documentation": "@notice Opens the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 536, + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "7883:171:1", + "text": "@notice Opens the evaluation process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "b2a13f92", + "id": 554, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 528, + "id": 546, "modifierName": { - "argumentTypes": null, - "id": 527, + "id": 545, "name": "evaluationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "8018:18:1", + "referencedDeclaration": 137, + "src": "8094:18:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8018:18:1" + "src": "8094:18:1" }, { - "arguments": null, - "id": 530, + "id": 548, "modifierName": { - "argumentTypes": null, - "id": 529, + "id": 547, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8037:13:1", + "referencedDeclaration": 3465, + "src": "8113:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8037:13:1" + "src": "8113:13:1" } ], "name": "openEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 526, + "id": 544, "nodeType": "ParameterList", "parameters": [], - "src": "8006:2:1" + "src": "8082:2:1" }, "returnParameters": { - "id": 531, + "id": 549, "nodeType": "ParameterList", "parameters": [], - "src": "8051:0:1" + "src": "8127:0:1" }, - "scope": 648, - "src": "7983:102:1", + "scope": 674, + "src": "8059:102:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 543, + "id": 562, "nodeType": "Block", - "src": "8280:41:1", + "src": "8356:41:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 541, + "id": 560, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8297:17:1", + "referencedDeclaration": 87, + "src": "8373:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 540, - "id": 542, + "functionReturnParameters": 559, + "id": 561, "nodeType": "Return", - "src": "8290:24:1" + "src": "8366:24:1" } ] }, - "documentation": "@notice Gets the evaluation status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 544, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "8167:124:1", + "text": "@notice Gets the evaluation status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "a2bce8bd", + "id": 563, "implemented": true, "kind": "function", "modifiers": [], "name": "getEvaluationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 537, + "id": 556, "nodeType": "ParameterList", "parameters": [], - "src": "8248:2:1" + "src": "8324:2:1" }, "returnParameters": { - "id": 540, + "id": 559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 539, + "id": 558, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 544, - "src": "8274:4:1", + "scope": 563, + "src": "8350:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13909,49 +13551,46 @@ "typeString": "bool" }, "typeName": { - "id": 538, + "id": 557, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8274:4:1", + "src": "8350:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "8273:6:1" + "src": "8349:6:1" }, - "scope": 648, - "src": "8220:101:1", + "scope": 674, + "src": "8296:101:1", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 555, + "id": 575, "nodeType": "Block", - "src": "8423:99:1", + "src": "8499:99:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 549, + "id": 569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 547, + "id": 567, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8433:17:1", + "referencedDeclaration": 87, + "src": "8509:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13960,45 +13599,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 548, + "id": 568, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8453:5:1", - "subdenomination": null, + "src": "8529:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "8433:25:1", + "src": "8509:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 550, + "id": 570, "nodeType": "ExpressionStatement", - "src": "8433:25:1" + "src": "8509:25:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 552, + "id": 572, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8497:17:1", + "referencedDeclaration": 87, + "src": "8573:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14012,18 +13647,18 @@ "typeString": "bool" } ], - "id": 551, + "id": 571, "name": "EvaluationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "8473:23:1", + "referencedDeclaration": 100, + "src": "8549:23:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 553, + "id": 573, "isConstant": false, "isLValue": false, "isPure": false, @@ -14031,65 +13666,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8473:42:1", + "src": "8549:42:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 554, + "id": 574, "nodeType": "EmitStatement", - "src": "8468:47:1" + "src": "8544:47:1" } ] }, - "documentation": "@dev internal implementation for {closeEvaluation.}", - "id": 556, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "8403:54:1", + "text": "@dev internal implementation for {closeEvaluation.}" + }, + "id": 576, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 545, + "id": 565, "nodeType": "ParameterList", "parameters": [], - "src": "8411:2:1" + "src": "8487:2:1" }, "returnParameters": { - "id": 546, + "id": 566, "nodeType": "ParameterList", "parameters": [], - "src": "8423:0:1" + "src": "8499:0:1" }, - "scope": 648, - "src": "8386:136:1", + "scope": 674, + "src": "8462:136:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 567, + "id": 588, "nodeType": "Block", - "src": "8622:98:1", + "src": "8698:98:1", "statements": [ { "expression": { - "argumentTypes": null, - "id": 561, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 559, + "id": 580, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8632:17:1", + "referencedDeclaration": 87, + "src": "8708:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14098,45 +13737,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 560, + "id": 581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8652:4:1", - "subdenomination": null, + "src": "8728:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "8632:24:1", + "src": "8708:24:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 562, + "id": 583, "nodeType": "ExpressionStatement", - "src": "8632:24:1" + "src": "8708:24:1" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 564, + "id": 585, "name": "evaluationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "8695:17:1", + "referencedDeclaration": 87, + "src": "8771:17:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14150,18 +13785,18 @@ "typeString": "bool" } ], - "id": 563, + "id": 584, "name": "EvaluationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "8671:23:1", + "referencedDeclaration": 100, + "src": "8747:23:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 565, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -14169,61 +13804,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8671:42:1", + "src": "8747:42:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 566, + "id": 587, "nodeType": "EmitStatement", - "src": "8666:47:1" + "src": "8742:47:1" } ] }, - "documentation": "@dev internal implementation for {openEvaluation.}", - "id": 568, + "documentation": { + "id": 577, + "nodeType": "StructuredDocumentation", + "src": "8604:53:1", + "text": "@dev internal implementation for {openEvaluation.}" + }, + "id": 589, "implemented": true, "kind": "function", "modifiers": [], "name": "_openEvaluation", "nodeType": "FunctionDefinition", "parameters": { - "id": 557, + "id": 578, "nodeType": "ParameterList", "parameters": [], - "src": "8610:2:1" + "src": "8686:2:1" }, "returnParameters": { - "id": 558, + "id": 579, "nodeType": "ParameterList", "parameters": [], - "src": "8622:0:1" + "src": "8698:0:1" }, - "scope": 648, - "src": "8586:134:1", + "scope": 674, + "src": "8662:134:1", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3241], "body": { - "id": 605, + "id": 628, "nodeType": "Block", - "src": "8884:427:1", + "src": "8969:427:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 576, + "id": 599, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9058:7:1", + "referencedDeclaration": 592, + "src": "9143:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14238,33 +13878,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 573, + "id": 596, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "9042:5:1", + "referencedDeclaration": 4294967271, + "src": "9127:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 575, + "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3113, - "src": "9042:15:1", + "referencedDeclaration": 3241, + "src": "9127:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 577, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, @@ -14272,26 +13911,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9042:24:1", + "src": "9127:24:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 578, + "id": 601, "nodeType": "ExpressionStatement", - "src": "9042:24:1" + "src": "9127:24:1" }, { - "assignments": [580], + "assignments": [603], "declarations": [ { "constant": false, - "id": 580, + "id": 603, + "mutability": "mutable", "name": "newId", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "9076:13:1", + "scope": 628, + "src": "9161:13:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14299,126 +13940,116 @@ "typeString": "uint256" }, "typeName": { - "id": 579, + "id": 602, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9076:7:1", + "src": "9161:7:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 583, + "id": 606, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 581, + "id": 604, "name": "judgesInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "9092:10:1", + "referencedDeclaration": 81, + "src": "9177:10:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref[] storage ref" } }, - "id": 582, + "id": 605, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9092:17:1", + "src": "9177:17:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9076:33:1" + "src": "9161:33:1" }, { - "assignments": [585], + "assignments": [608], "declarations": [ { "constant": false, - "id": 585, + "id": 608, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 605, - "src": "9119:18:1", + "scope": 628, + "src": "9204:18:1", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 584, + "id": 607, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "9119:5:1", + "referencedDeclaration": 78, + "src": "9204:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 592, + "id": 615, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 587, + "id": 610, "name": "newId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "9146:5:1", + "referencedDeclaration": 603, + "src": "9231:5:1", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 588, + "id": 611, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9153:7:1", + "referencedDeclaration": 592, + "src": "9238:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 589, + "id": 612, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9162:4:1", - "subdenomination": null, + "src": "9247:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14426,17 +14057,15 @@ "value": "true" }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 590, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9168:5:1", - "subdenomination": null, + "src": "9253:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14463,18 +14092,18 @@ "typeString": "bool" } ], - "id": 586, + "id": 609, "name": "Judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "9140:5:1", + "referencedDeclaration": 78, + "src": "9225:5:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Judge_$77_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Judge_$78_storage_ptr_$", "typeString": "type(struct ContestBracketRegistry.Judge storage pointer)" } }, - "id": 591, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -14482,29 +14111,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9140:34:1", + "src": "9225:34:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "9119:55:1" + "src": "9204:55:1" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 596, + "id": 619, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9200:5:1", + "referencedDeclaration": 608, + "src": "9285:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } } @@ -14512,38 +14140,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } ], "expression": { - "argumentTypes": null, - "id": 593, + "id": 616, "name": "judgesInfo", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "9184:10:1", + "referencedDeclaration": 81, + "src": "9269:10:1", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Judge_$77_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Judge_$78_storage_$dyn_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref[] storage ref" } }, - "id": 595, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9184:15:1", + "src": "9269:15:1", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Judge_$77_storage_$returns$_t_uint256_$", - "typeString": "function (struct ContestBracketRegistry.Judge storage ref) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Judge_$78_storage_$returns$__$", + "typeString": "function (struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 597, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, @@ -14551,48 +14177,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9184:22:1", + "src": "9269:22:1", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 598, + "id": 621, "nodeType": "ExpressionStatement", - "src": "9184:22:1" + "src": "9269:22:1" }, { "expression": { - "argumentTypes": null, - "id": 603, + "id": 626, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 599, + "id": 622, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "9216:14:1", + "referencedDeclaration": 85, + "src": "9301:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 601, + "id": 624, "indexExpression": { - "argumentTypes": null, - "id": 600, + "id": 623, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "9231:7:1", + "referencedDeclaration": 592, + "src": "9316:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14603,57 +14226,68 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "9216:23:1", + "src": "9301:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 602, + "id": 625, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "9242:5:1", + "referencedDeclaration": 608, + "src": "9327:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_memory_ptr", + "typeIdentifier": "t_struct$_Judge_$78_memory_ptr", "typeString": "struct ContestBracketRegistry.Judge memory" } }, - "src": "9216:31:1", + "src": "9301:31:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, - "id": 604, + "id": 627, "nodeType": "ExpressionStatement", - "src": "9216:31:1" + "src": "9301:31:1" } ] }, - "documentation": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.", - "id": 606, + "documentation": { + "id": 590, + "nodeType": "StructuredDocumentation", + "src": "8802:108:1", + "text": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members." + }, + "id": 629, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 594, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "8960:8:1" + }, "parameters": { - "id": 571, + "id": 593, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 570, + "id": 592, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 606, - "src": "8858:15:1", + "scope": 629, + "src": "8934:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14661,52 +14295,50 @@ "typeString": "address" }, "typeName": { - "id": 569, + "id": 591, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8858:7:1", + "src": "8934:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "8857:17:1" + "src": "8933:17:1" }, "returnParameters": { - "id": 572, + "id": 595, "nodeType": "ParameterList", "parameters": [], - "src": "8884:0:1" + "src": "8969:0:1" }, - "scope": 648, - "src": "8839:472:1", + "scope": 674, + "src": "8915:481:1", "stateMutability": "nonpayable", - "superFunction": 3113, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3267], "body": { - "id": 629, + "id": 654, "nodeType": "Block", - "src": "9478:186:1", + "src": "9572:186:1", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 614, + "id": 639, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "9507:7:1", + "referencedDeclaration": 632, + "src": "9601:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14721,33 +14353,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 611, + "id": 636, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4259, - "src": "9488:5:1", + "referencedDeclaration": 4294967271, + "src": "9582:5:1", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestBracketRegistry_$648", + "typeIdentifier": "t_super$_ContestBracketRegistry_$674", "typeString": "contract super ContestBracketRegistry" } }, - "id": 613, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3138, - "src": "9488:18:1", + "referencedDeclaration": 3267, + "src": "9582:18:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 615, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, @@ -14755,73 +14386,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9488:27:1", + "src": "9582:27:1", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 616, + "id": 641, "nodeType": "ExpressionStatement", - "src": "9488:27:1" + "src": "9582:27:1" }, { - "assignments": [618], + "assignments": [643], "declarations": [ { "constant": false, - "id": 618, + "id": 643, + "mutability": "mutable", "name": "judge", "nodeType": "VariableDeclaration", - "scope": 629, - "src": "9525:19:1", + "scope": 654, + "src": "9619:19:1", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" }, "typeName": { - "contractScope": null, - "id": 617, + "id": 642, "name": "Judge", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 77, - "src": "9525:5:1", + "referencedDeclaration": 78, + "src": "9619:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge" } }, - "value": null, "visibility": "internal" } ], - "id": 622, + "id": 647, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 619, + "id": 644, "name": "judgeByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "9547:14:1", + "referencedDeclaration": 85, + "src": "9641:14:1", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$77_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Judge_$78_storage_$", "typeString": "mapping(address => struct ContestBracketRegistry.Judge storage ref)" } }, - "id": 621, + "id": 646, "indexExpression": { - "argumentTypes": null, - "id": 620, + "id": 645, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "9562:7:1", + "referencedDeclaration": 632, + "src": "9656:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14832,47 +14460,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "9547:23:1", + "src": "9641:23:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage", + "typeIdentifier": "t_struct$_Judge_$78_storage", "typeString": "struct ContestBracketRegistry.Judge storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "9525:45:1" + "src": "9619:45:1" }, { "expression": { - "argumentTypes": null, - "id": 627, + "id": 652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 623, + "id": 648, "name": "judge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "9580:5:1", + "referencedDeclaration": 643, + "src": "9674:5:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Judge_$77_storage_ptr", + "typeIdentifier": "t_struct$_Judge_$78_storage_ptr", "typeString": "struct ContestBracketRegistry.Judge storage pointer" } }, - "id": 625, + "id": 650, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "active", "nodeType": "MemberAccess", - "referencedDeclaration": 74, - "src": "9580:12:1", + "referencedDeclaration": 75, + "src": "9674:12:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14881,53 +14506,63 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 626, + "id": 651, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9595:5:1", - "subdenomination": null, + "src": "9689:5:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9580:20:1", + "src": "9674:20:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 628, + "id": 653, "nodeType": "ExpressionStatement", - "src": "9580:20:1" + "src": "9674:20:1" } ] }, - "documentation": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members.", - "id": 630, + "documentation": { + "id": 630, + "nodeType": "StructuredDocumentation", + "src": "9402:108:1", + "text": "@dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members." + }, + "id": 655, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 634, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9563:8:1" + }, "parameters": { - "id": 609, + "id": 633, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 608, + "id": 632, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 630, - "src": "9452:15:1", + "scope": 655, + "src": "9537:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14935,74 +14570,69 @@ "typeString": "address" }, "typeName": { - "id": 607, + "id": 631, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9452:7:1", + "src": "9537:7:1", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "9451:17:1" + "src": "9536:17:1" }, "returnParameters": { - "id": 610, + "id": 635, "nodeType": "ParameterList", "parameters": [], - "src": "9478:0:1" + "src": "9572:0:1" }, - "scope": 648, - "src": "9430:234:1", + "scope": 674, + "src": "9515:243:1", "stateMutability": "nonpayable", - "superFunction": 3138, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 646, + "id": 672, "nodeType": "Block", - "src": "9910:51:1", + "src": "10004:51:1", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 643, + "id": 669, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 639, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 637, + "id": 663, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "9928:5:1", + "referencedDeclaration": 658, + "src": "10022:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15011,24 +14641,22 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 638, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9937:1:1", - "subdenomination": null, + "src": "10031:1:1", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "9928:10:1", + "src": "10022:10:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15037,24 +14665,22 @@ "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 642, + "id": 668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 640, + "id": 666, "name": "grade", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "9942:5:1", + "referencedDeclaration": 658, + "src": "10036:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -15063,74 +14689,78 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "hexValue": "3130", - "id": 641, + "id": 667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9951:2:1", - "subdenomination": null, + "src": "10045:2:1", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, - "src": "9942:11:1", + "src": "10036:11:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "9928:25:1", + "src": "10022:25:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 644, + "id": 670, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9927:27:1", + "src": "10021:27:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 636, - "id": 645, + "functionReturnParameters": 662, + "id": 671, "nodeType": "Return", - "src": "9920:34:1" + "src": "10014:34:1" } ] }, - "documentation": "@notice checks if a grade is valid or not.\n@param grade {uint8} the grade to be evaluated\n@return {bool} true if valid; otherwise false", - "id": 647, + "documentation": { + "id": 656, + "nodeType": "StructuredDocumentation", + "src": "9764:171:1", + "text": "@notice checks if a grade is valid or not.\n@param grade {uint8} the grade to be evaluated\n@return {bool} true if valid; otherwise false" + }, + "id": 673, "implemented": true, "kind": "function", "modifiers": [], "name": "isValidGrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 633, + "id": 659, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 632, + "id": 658, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "9868:11:1", + "scope": 673, + "src": "9962:11:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15138,32 +14768,32 @@ "typeString": "uint8" }, "typeName": { - "id": 631, + "id": 657, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "9868:5:1", + "src": "9962:5:1", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "src": "9867:13:1" + "src": "9961:13:1" }, "returnParameters": { - "id": 636, + "id": 662, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 635, + "id": 661, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 647, - "src": "9904:4:1", + "scope": 673, + "src": "9998:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15171,42 +14801,53 @@ "typeString": "bool" }, "typeName": { - "id": 634, + "id": 660, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9904:4:1", + "src": "9998:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "9903:6:1" + "src": "9997:6:1" }, - "scope": 648, - "src": "9846:115:1", + "scope": 674, + "src": "9940:115:1", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 649, - "src": "264:9699:1" + "scope": 675, + "src": "304:9753:1" } ], - "src": "0:9964:1" + "src": "40:10018:1" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.431Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.004Z", "devdoc": { + "events": { + "EvaluationStatusUpdated(bool)": { + "details": "emitted when the evaluation process is updated. See {openEvaluation()} and {closeEvaluation()}" + }, + "JudgeVoted(uint256,address)": { + "details": "emitted when a judge submits its evaluation." + }, + "WinnerAnnouced(uint256,address,uint256,uint8)": { + "details": "emitted when winners are announced." + } + }, + "kind": "dev", "methods": { "approveTeam(uint256)": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control.", @@ -15230,28 +14871,50 @@ } }, "getEvaluationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getWinnersIds()": { - "return": "{uint256} First place's id{uint256} Second place's id{uint256} Third place's id" + "returns": { + "_0": "{uint256} First place's id", + "_1": "{uint256} Second place's id", + "_2": "{uint256} Third place's id" + } }, "openEvaluation()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -15296,10 +14959,15 @@ "teamId": "team's unique identifier; required" } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + }, "approveTeam(uint256)": { "notice": "(re)approves a team in participating in the contest" }, @@ -15358,6 +15026,7 @@ "notice": "Updates the proposal data for a specific team." } }, - "notice": "Controls the evaluation process by the judges and publishing of final results." + "notice": "Controls the evaluation process by the judges and publishing of final results.", + "version": 1 } } diff --git a/build/contracts/ContestBracketRegistryMock.json b/build/contracts/ContestBracketRegistryMock.json index 1eb4253..9c528d0 100644 --- a/build/contracts/ContestBracketRegistryMock.json +++ b/build/contracts/ContestBracketRegistryMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -230,7 +229,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -240,12 +238,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -255,12 +251,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -270,39 +264,31 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getEvaluationStatus", "outputs": [ @@ -312,12 +298,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -327,12 +311,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -342,12 +324,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -383,12 +363,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -424,12 +402,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getWinnersIds", "outputs": [ @@ -449,12 +425,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -470,12 +444,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -491,48 +463,38 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "openEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "publishRank", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -558,12 +520,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -573,30 +533,24 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -606,12 +560,10 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -621,12 +573,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -641,12 +591,10 @@ ], "name": "submitEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -687,12 +635,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -707,314 +653,319 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getEvaluationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getWinnersIds()\":{\"return\":\"{uint256} First place's id{uint256} Second place's id{uint256} Third place's id\"},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}}},\"userdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol\":\"ContestBracketRegistryMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xc15a9e0ef31fce09f610aa64da88dbf3f256af120e0c94d4b90dca958cc61a0f\",\"urls\":[\"bzz-raw://9597586371e6012927afcecc19997345b541dab8882a8cb7cc7e8f46a3f60838\",\"dweb:/ipfs/QmdUxhk9iwYeY1WNHcAxFDTMFoMznLd36FCko9AmwYwDaJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol\":{\"keccak256\":\"0x94f2ee722714d770bcf8d101eedae92c412b1e01e44963cb89b16ae3354b891c\",\"urls\":[\"bzz-raw://3e484d62b6e6d83c9d573a6cdc0d83bf8c2fd01a51093fbb67a1cd254d73d2c4\",\"dweb:/ipfs/QmVXb6KKXEYHx8pmbJtMuHStM4N7Pz3U4hiqx8xbeicLta\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50338080806200008257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b62000096816001600160e01b036200009f16565b50505062000331565b620000b5816200013960201b620024031760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620001339290916200018b811b62001cd517901c565b600a5550565b620001548160046200020760201b620025421790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156200020057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200021c82826001600160e01b03620002ae16565b156200028957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062002aca6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61278980620003416000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c80637dc673bc116100f9578063d06e4ee711610097578063eaf2f9cd11610071578063eaf2f9cd1461053e578063ed896d6614610561578063f540548b14610587578063ffc6ff1e146105a4576101a8565b8063d06e4ee714610508578063e35fb24114610510578063e4725f0214610518576101a8565b8063a2bce8bd116100d3578063a2bce8bd146104ca578063ae237c77146104d2578063ae2ac4ae146104da578063b2a13f9214610500576101a8565b80637dc673bc1461049457806390d768e41461049c578063927cab47146104a4576101a8565b80634b30b66f11610166578063567ad86211610140578063567ad8621461041a57806358e2f50e14610422578063737a63401461042a5780637385712c14610450576101a8565b80634b30b66f146103e45780634ea701a8146103ec57806354e1db2b14610412576101a8565b80628e0f1b146101ad57806324ba9fab146101ff578063288c4a461461021e5780633e091f641461028e5780633ed2b77a1461035057806341676f15146103aa575b600080fd5b6101ca600480360360208110156101c357600080fd5b50356105ac565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b61021c6004803603602081101561021557600080fd5b5035610696565b005b61021c6004803603602081101561023457600080fd5b81019060208101813564010000000081111561024f57600080fd5b82018360208201111561026157600080fd5b8035906020019184602083028401116401000000008311171561028357600080fd5b5090925090506106a2565b61021c600480360360408110156102a457600080fd5b8101906020810181356401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460208302840111640100000000831117156102f357600080fd5b91939092909160208101903564010000000081111561031157600080fd5b82018360208201111561032357600080fd5b8035906020019184602083028401116401000000008311171561034557600080fd5b5090925090506106e2565b61036d6004803603602081101561036657600080fd5b5035610a71565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6103d0600480360360208110156103c057600080fd5b50356001600160a01b0316610ac4565b604080519115158252519081900360200190f35b61021c610adf565b6101ca6004803603602081101561040257600080fd5b50356001600160a01b0316610aea565b6103d0610bc5565b61021c610bd3565b61021c610bdc565b610432610c7a565b60408051938452602084019290925282820152519081900360600190f35b6104826004803603606081101561046657600080fd5b508035906001600160a01b036020820135169060400135610c88565b60408051918252519081900360200190f35b61021c611066565b61021c611102565b61021c600480360360208110156104ba57600080fd5b50356001600160a01b03166115c8565b6103d0611615565b61021c61161e565b61021c600480360360208110156104f057600080fd5b50356001600160a01b03166116b8565b61021c611705565b61021c61179e565b6103d0611839565b61021c6004803603602081101561052e57600080fd5b50356001600160a01b0316611842565b61021c6004803603604081101561055457600080fd5b508035906020013561188f565b6103d06004803603602081101561057757600080fd5b50356001600160a01b03166119fb565b61021c6004803603602081101561059d57600080fd5b5035611a0e565b61021c611a17565b6000806000806000856105be81611ab6565b610601576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6106096125c3565b6001888154811061061657fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61069f81611abd565b50565b6106de828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611bff92505050565b5050565b600e5460ff16610730576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610739336119fb565b6107745760405162461bcd60e51b815260040180806020018281038252602b815260200180612642602b913960400191505060405180910390fd5b8281146107b25760405162461bcd60e51b81526004018080602001828103825260338152602001806127006033913960400191505060405180910390fd5b60025483146107f25760405162461bcd60e51b815260040180806020018281038252603f8152602001806126c1603f913960400191505060405180910390fd5b600060025411610849576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff16156108a35760405162461bcd60e51b81526004018080602001828103825260228152602001806126206022913960400191505060405180910390fd5b60005b600254811015610a115760008686838181106108be57fe5b90506020020135905060008585848181106108d557fe5b9050602002013560ff1690506108ea82611ab6565b61092d576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61093682611c2f565b61097e576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61098781611cc9565b6109c8576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b6000600183815481106109d757fe5b90600052602060002090600602019050610a018260ff168260050154611cd590919063ffffffff16565b60059091015550506001016108a6565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b60018181548110610a7e57fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000610ad760048363ffffffff611d3616565b90505b919050565b610ae833611d9d565b565b6000808080806001600160a01b038616610b42576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b610b4a6125c3565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b610ae833611dcd565b600354610100900460ff1615610c2e576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b610c3733610ac4565b610c725760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8611e10565b600f54601554601b54909192565b60035460009060ff16610cdb576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916610d3d576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610d98576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610e08576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154610e136125c3565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90930192909255815490919083908110610f7b57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546110129163ffffffff611cd516565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166110b6576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6110bf33610ac4565b6110fa5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8611e60565b60035460ff1615611151576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156111a3576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156111f0576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6111f933610ac4565b6112345760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b60215460ff1615611285576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116112d2576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6112da6125c3565b6112e26125c3565b6112ea6125c3565b6112f26125c3565b60005b6001548110156113dd576001818154811061130c57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a082015295508061138457508160a001518560a00151105b1561138e576113d5565b8360a001518560a0015111156113a85784939291506113d5565b8260a001518560a0015111156113c157849291506113d5565b8160a001518560a0015111156113d5578491505b6001016112f5565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b6115d133610ac4565b61160c5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81611ea0565b600e5460ff1690565b600e5460ff1661166c576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b61167533610ac4565b6116b05760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612033565b6116c133610ac4565b6116fc5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81611d9d565b600e5460ff1615611752576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61175b33610ac4565b6117965760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612073565b60035460ff16156117ed576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6117f633610ac4565b6118315760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae86120bd565b60035460ff1690565b61184b33610ac4565b6118865760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81612107565b8161189981611ab6565b6118dc576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826118e681611c2f565b61192e576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16611981576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061199057fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b6000610ad760058363ffffffff611d3616565b61069f8161217e565b600354610100900460ff16611a6a576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611a7333610ac4565b611aae5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612259565b6001541190565b80611ac781611ab6565b611b0a576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81611b1481611c2f565b15611b5e576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110611b6d57fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250611ba6919063ffffffff611cd516565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b81518110156106de57611c27828281518110611c1a57fe5b602002602001015161217e565b600101611c02565b6000611c3a82611ab6565b611c4657506000610ada565b611c4e6125c3565b60018381548110611c5b57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b600082820183811015611d2f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b038216611d7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806127336022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611da6816122a4565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b611dd6816122e7565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54611e0a90600163ffffffff61232f16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b611ea98161238c565b600c54611eb46125f8565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61211081612403565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54611e0a91611cd5565b8061218881611ab6565b6121cb576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816121d581611c2f565b61221d576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061222c57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150611ba690600161232f565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6122ad8161244b565b6001600160a01b0381166000908152600860205260409020805460ff191690556007546122e190600163ffffffff61232f16565b60075550565b6122f860048263ffffffff61249316565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612386576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612395816124fa565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff1916821790556007546122e191611cd5565b61241460048263ffffffff61254216565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61245c60058263ffffffff61249316565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b61249d8282611d36565b6124d85760405162461bcd60e51b81526004018080602001828103825260218152602001806126a06021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61250b60058263ffffffff61254216565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b61254c8282611d36565b1561259e576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d734c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a7231582000e92669d98de0c7e2c1af3af2bb50a0ed88c6e071822fc1762885e3eace2f0964736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a85760003560e01c80637dc673bc116100f9578063d06e4ee711610097578063eaf2f9cd11610071578063eaf2f9cd1461053e578063ed896d6614610561578063f540548b14610587578063ffc6ff1e146105a4576101a8565b8063d06e4ee714610508578063e35fb24114610510578063e4725f0214610518576101a8565b8063a2bce8bd116100d3578063a2bce8bd146104ca578063ae237c77146104d2578063ae2ac4ae146104da578063b2a13f9214610500576101a8565b80637dc673bc1461049457806390d768e41461049c578063927cab47146104a4576101a8565b80634b30b66f11610166578063567ad86211610140578063567ad8621461041a57806358e2f50e14610422578063737a63401461042a5780637385712c14610450576101a8565b80634b30b66f146103e45780634ea701a8146103ec57806354e1db2b14610412576101a8565b80628e0f1b146101ad57806324ba9fab146101ff578063288c4a461461021e5780633e091f641461028e5780633ed2b77a1461035057806341676f15146103aa575b600080fd5b6101ca600480360360208110156101c357600080fd5b50356105ac565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b61021c6004803603602081101561021557600080fd5b5035610696565b005b61021c6004803603602081101561023457600080fd5b81019060208101813564010000000081111561024f57600080fd5b82018360208201111561026157600080fd5b8035906020019184602083028401116401000000008311171561028357600080fd5b5090925090506106a2565b61021c600480360360408110156102a457600080fd5b8101906020810181356401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460208302840111640100000000831117156102f357600080fd5b91939092909160208101903564010000000081111561031157600080fd5b82018360208201111561032357600080fd5b8035906020019184602083028401116401000000008311171561034557600080fd5b5090925090506106e2565b61036d6004803603602081101561036657600080fd5b5035610a71565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6103d0600480360360208110156103c057600080fd5b50356001600160a01b0316610ac4565b604080519115158252519081900360200190f35b61021c610adf565b6101ca6004803603602081101561040257600080fd5b50356001600160a01b0316610aea565b6103d0610bc5565b61021c610bd3565b61021c610bdc565b610432610c7a565b60408051938452602084019290925282820152519081900360600190f35b6104826004803603606081101561046657600080fd5b508035906001600160a01b036020820135169060400135610c88565b60408051918252519081900360200190f35b61021c611066565b61021c611102565b61021c600480360360208110156104ba57600080fd5b50356001600160a01b03166115c8565b6103d0611615565b61021c61161e565b61021c600480360360208110156104f057600080fd5b50356001600160a01b03166116b8565b61021c611705565b61021c61179e565b6103d0611839565b61021c6004803603602081101561052e57600080fd5b50356001600160a01b0316611842565b61021c6004803603604081101561055457600080fd5b508035906020013561188f565b6103d06004803603602081101561057757600080fd5b50356001600160a01b03166119fb565b61021c6004803603602081101561059d57600080fd5b5035611a0e565b61021c611a17565b6000806000806000856105be81611ab6565b610601576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6106096125c3565b6001888154811061061657fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61069f81611abd565b50565b6106de828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611bff92505050565b5050565b600e5460ff16610730576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610739336119fb565b6107745760405162461bcd60e51b815260040180806020018281038252602b815260200180612642602b913960400191505060405180910390fd5b8281146107b25760405162461bcd60e51b81526004018080602001828103825260338152602001806127006033913960400191505060405180910390fd5b60025483146107f25760405162461bcd60e51b815260040180806020018281038252603f8152602001806126c1603f913960400191505060405180910390fd5b600060025411610849576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff16156108a35760405162461bcd60e51b81526004018080602001828103825260228152602001806126206022913960400191505060405180910390fd5b60005b600254811015610a115760008686838181106108be57fe5b90506020020135905060008585848181106108d557fe5b9050602002013560ff1690506108ea82611ab6565b61092d576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61093682611c2f565b61097e576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61098781611cc9565b6109c8576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b6000600183815481106109d757fe5b90600052602060002090600602019050610a018260ff168260050154611cd590919063ffffffff16565b60059091015550506001016108a6565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b60018181548110610a7e57fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000610ad760048363ffffffff611d3616565b90505b919050565b610ae833611d9d565b565b6000808080806001600160a01b038616610b42576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b610b4a6125c3565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b610ae833611dcd565b600354610100900460ff1615610c2e576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b610c3733610ac4565b610c725760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8611e10565b600f54601554601b54909192565b60035460009060ff16610cdb576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916610d3d576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610d98576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610e08576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154610e136125c3565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90930192909255815490919083908110610f7b57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546110129163ffffffff611cd516565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166110b6576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6110bf33610ac4565b6110fa5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8611e60565b60035460ff1615611151576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156111a3576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156111f0576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6111f933610ac4565b6112345760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b60215460ff1615611285576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116112d2576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6112da6125c3565b6112e26125c3565b6112ea6125c3565b6112f26125c3565b60005b6001548110156113dd576001818154811061130c57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a082015295508061138457508160a001518560a00151105b1561138e576113d5565b8360a001518560a0015111156113a85784939291506113d5565b8260a001518560a0015111156113c157849291506113d5565b8160a001518560a0015111156113d5578491505b6001016112f5565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b6115d133610ac4565b61160c5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81611ea0565b600e5460ff1690565b600e5460ff1661166c576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b61167533610ac4565b6116b05760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612033565b6116c133610ac4565b6116fc5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81611d9d565b600e5460ff1615611752576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61175b33610ac4565b6117965760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612073565b60035460ff16156117ed576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6117f633610ac4565b6118315760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae86120bd565b60035460ff1690565b61184b33610ac4565b6118865760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b61069f81612107565b8161189981611ab6565b6118dc576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826118e681611c2f565b61192e576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16611981576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061199057fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b6000610ad760058363ffffffff611d3616565b61069f8161217e565b600354610100900460ff16611a6a576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611a7333610ac4565b611aae5760405162461bcd60e51b815260040180806020018281038252603381526020018061266d6033913960400191505060405180910390fd5b610ae8612259565b6001541190565b80611ac781611ab6565b611b0a576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81611b1481611c2f565b15611b5e576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110611b6d57fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250611ba6919063ffffffff611cd516565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b81518110156106de57611c27828281518110611c1a57fe5b602002602001015161217e565b600101611c02565b6000611c3a82611ab6565b611c4657506000610ada565b611c4e6125c3565b60018381548110611c5b57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b600082820183811015611d2f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b038216611d7d5760405162461bcd60e51b81526004018080602001828103825260228152602001806127336022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611da6816122a4565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b611dd6816122e7565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54611e0a90600163ffffffff61232f16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b611ea98161238c565b600c54611eb46125f8565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61211081612403565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54611e0a91611cd5565b8061218881611ab6565b6121cb576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816121d581611c2f565b61221d576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061222c57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150611ba690600161232f565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6122ad8161244b565b6001600160a01b0381166000908152600860205260409020805460ff191690556007546122e190600163ffffffff61232f16565b60075550565b6122f860048263ffffffff61249316565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612386576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612395816124fa565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff1916821790556007546122e191611cd5565b61241460048263ffffffff61254216565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61245c60058263ffffffff61249316565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b61249d8282611d36565b6124d85760405162461bcd60e51b81526004018080602001828103825260218152602001806126a06021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61250b60058263ffffffff61254216565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b61254c8282611d36565b1561259e576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d734c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a7231582000e92669d98de0c7e2c1af3af2bb50a0ed88c6e071822fc1762885e3eace2f0964736f6c634300050c0032", - "sourceMap": "71:129:9:-;;;139:58;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;183:10:9;;;1889:30:22;1881:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:31;1968:16;-1:-1:-1;;;;;1954:13:22;:31;:::i;:::-;1824:168;895:93:20;1986:108:1;71:129:9;;1599:232:20;1658:28;1678:7;1658:19;;;;;:28;;:::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1772:21;:52;-1:-1:-1;1599:232:20:o;2455:128:22:-;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;71:129:9:-;;;;;;;", - "deployedSourceMap": "71:129:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;71:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:293:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3439:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3439:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8416:83;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8416:83:3;;:::i;:::-;;8791:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8791:98:3;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8791:98:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8791:98:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8791:98:3;;-1:-1:-1;8791:98:3;-1:-1:-1;8791:98:3;:::i;2703:1555:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2703:1555:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2703:1555:1;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2703:1555:1;;-1:-1:-1;2703:1555:1;-1:-1:-1;2703:1555:1;:::i;1103:19:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:113:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;2240:73:21;;;:::i;4172:332:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4172:332:3;-1:-1:-1;;;;;4172:332:3;;:::i;8042:101::-;;;:::i;2368:81:22:-;;;:::i;7408:108:1:-;;;:::i;6283:145::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4887:1108:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4887:1108:3;;;-1:-1:-1;;;;;4887:1108:3;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6559:114:1;;;:::i;4426:1656::-;;;:::i;994:91:20:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;994:91:20;-1:-1:-1;;;;;994:91:20;;:::i;8220:101:1:-;;;:::i;7699:102::-;;;:::i;1091:97:20:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1091:97:20;-1:-1:-1;;;;;1091:97:20;;:::i;7983:102:1:-;;;:::i;6803:114::-;;;:::i;7243:105:3:-;;;:::i;2263:99:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;6206:343:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6206:343:3;;;;;;;:::i;2003:105:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2003:105:21;-1:-1:-1;;;;;2003:105:21;;:::i;9160:83:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9160:83:3;;:::i;7109:108:1:-;;;:::i;3439:293:3:-;3545:7;3554;3563;3572:4;3578:7;3520:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;3601:16;;:::i;:::-;3620:5;3626:6;3620:13;;;;;;;;;;;;;;;;;3601:32;;;;;;;;3620:13;;;;;;;;3601:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3601:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;-1:-1:-1;3439:293:3;-1:-1:-1;;;;3439:293:3:o;8416:83::-;8472:20;8485:6;8472:12;:20::i;:::-;8416:83;:::o;8791:98::-;8860:22;8874:7;;8860:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8860:13:3;;-1:-1:-1;;;8860:22:3:i;:::-;8791:98;;:::o;2703:1555:1:-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;1912:19:21;1920:10;1912:7;:19::i;:::-;1904:75;;;;-1:-1:-1;;;1904:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:35:1;;;2860:99;;;;-1:-1:-1;;;2860:99:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3008:18;;2990:36;;2969:146;;;;-1:-1:-1;;;2969:146:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3154:1;3133:18;;:22;3125:64;;;;;-1:-1:-1;;;3125:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:10;3199:19;3221:26;;;:14;:26;;;;;3266:11;;;;-1:-1:-1;;;3266:11:1;;;;3265:12;3257:59;;;;-1:-1:-1;;;3257:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:9;3326:801;3350:18;;3346:1;:22;3326:801;;;3389:14;3406:7;;3414:1;3406:10;;;;;;;;;;;;;3389:27;;3430:11;3444:10;;3455:1;3444:13;;;;;;;;;;;;;;;3430:27;;3850:21;3864:6;3850:13;:21::i;:::-;3842:49;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;;;;3913:22;3928:6;3913:14;:22::i;:::-;3905:55;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;;;;3982:19;3995:5;3982:12;:19::i;:::-;3974:45;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;;;;4034:17;4054:5;4060:6;4054:13;;;;;;;;;;;;;;;;;;4034:33;;4094:21;4109:5;4094:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4081:10;;;;:34;-1:-1:-1;;3370:3:1;;3326:801;;;-1:-1:-1;4192:4:1;4178:11;;:18;;-1:-1:-1;;;;4178:18:1;-1:-1:-1;;;4178:18:1;;;;;4222:8;;4211:40;;;-1:-1:-1;;;;;4232:18:1;;;4211:40;;;4222:8;;4211:40;;;;;;;;;;1989:1:21;2703:1555:1;;;;:::o;1103:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1103:19:3;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;:::o;2144:113:22:-;2203:4;2226:24;:11;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;;2144:113;;;;:::o;2240:73:21:-;2282:24;2295:10;2282:12;:24::i;:::-;2240:73::o;4172:332:3:-;4240:7;;;;;-1:-1:-1;;;;;4300:25:3;;4292:58;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;;;;4360:16;;:::i;:::-;-1:-1:-1;;;;;;;;;4379:26:3;;;:13;:26;;;;;;;;;;;;4360:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4360:45:3;-1:-1:-1;4360:45:3;4172:332::o;8042:101::-;8119:17;;;;;;;;8042:101::o;2368:81:22:-;2414:28;2431:10;2414:16;:28::i;7408:108:1:-;2513:17:3;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7486:23:1;:21;:23::i;6283:145::-;6376:10;:13;6391:11;:14;6407:10;:13;6283:145;;;:::o;4887:1108:3:-;2163:19;;5031:7;;2163:19;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;5062:8;5071:1;5062:11;;;-1:-1:-1;;;;;;5062:16:3;5054:54;;;;;-1:-1:-1;;;5054:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:25:3;;5118:65;;;;;-1:-1:-1;;;5118:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5201:26:3;;;5251:1;5201:26;;;;;;;;;;:38;;;;:52;5193:88;;;;;-1:-1:-1;;;5193:88:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:5;:12;5688:16;;:::i;:::-;-1:-1:-1;5707:58:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5707:58:3;;;;;;;;;;;;;;;5757:4;5707:58;;;;;;-1:-1:-1;5707:58:3;;;;;;27:10:-1;;23:18;;;45:23;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5775:16:3;;;;;;;;;;;;;;;;;;;;5830:13;;5707:58;;5757:4;5707:58;;5830:13;;;;;;;;;;;;;;-1:-1:-1;;;;;5801:26:3;;;;;;;;;;;;;5830:13;;;;;;;5801:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5801:42:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5801:42:3;;;;;;;;;;;;;;;;;;;5874:18;;:25;;;:22;:25;:::i;:::-;5853:18;:46;5914:51;;;;;;5960:4;5914:51;;;;;;-1:-1:-1;;;;;5914:51:3;;;5929:6;;5914:51;;;;;;;;;;;-1:-1:-1;5982:6:3;4887:1108;-1:-1:-1;;;;4887:1108:3:o;6559:114:1:-;2163:19:3;;;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:26:1;:24;:26::i;4426:1656::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2513:17;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;1543:17:1;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:13:1;;;;1764:14;1756:49;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;;;;4643:1;4622:18;;:22;4614:54;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;;;;4678:19;;:::i;:::-;4707:20;;:::i;:::-;4737:21;;:::i;:::-;4768:20;;:::i;:::-;4804:9;4799:881;4823:5;:12;4819:16;;4799:881;;;4866:5;4872:1;4866:8;;;;;;;;;;;;;;;;;4856:18;;;;;;;;4866:8;;;;;;;4856:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4856:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4856:18:1;4892:51;;;4929:8;:14;;;4913:7;:13;;;:30;4892:51;4888:213;;;5078:8;;4888:213;5301:8;:14;;;5285:7;:13;;;:30;5281:389;;;5422:7;;5385:8;5346:9;-1:-1:-1;5281:389:1;;;5470:9;:15;;;5454:7;:13;;;:31;5450:220;;;5555:7;;5516:9;-1:-1:-1;5450:220:1;;;5603:8;:14;;;5587:7;:13;;;:30;5583:87;;;5648:7;5637:18;;5583:87;4837:3;;4799:881;;;-1:-1:-1;5690:21:1;;:10;:21;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5690:21:1;;;-1:-1:-1;;;;;5690:21:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5690:21:1;;;;;;;;;;;;;;;;;;;;;5721:23;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5754:21;;:10;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5785:13;:20;;;;;-1:-1:-1;5785:20:1;;;;;;5820:74;;;;;5850:22;;;;5820:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5924:11;:14;5940:23;;5965:17;;5909:77;;;;;;-1:-1:-1;;;;;5940:23:1;;;5909:77;;;;;;;;5940:23;5909:77;;;;;;;;;;;;;;6016:10;:13;6031:22;;6055:16;;;6001:74;;;;;;-1:-1:-1;;;;;6031:22:1;;;6001:74;;;;;;;;;;;6073:1;6001:74;;;;;;;;;;;;;;1815:1;;;;4426:1656::o;994:91:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:18:20;1070:7;1060:9;:18::i;8220:101:1:-;8297:17;;;;8220:101;:::o;7699:102::-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7776:18:1;:16;:18::i;1091:97:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:21:20;1173:7;1160:12;:21::i;7983:102:1:-;1543:17;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8061:17:1;:15;:17::i;6803:114::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6885:25:1;:23;:25::i;7243:105:3:-;7322:19;;;;7243:105;:::o;2263:99:22:-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;6206:343:3:-;6309:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;6340:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;2398:17;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;6387:17;6407:5;6413:6;6407:13;;;;;;;;;;;;;;;;;6430:17;6407:13;;;;;6430:17;;;:32;;;6506:16;;;;6497:7;;6477:65;;;;;;;;6407:13;;-1:-1:-1;;;;;;6506:16:3;;;;6497:7;;6477:65;;;;;;;;;;2450:1;2683;6206:343;;;:::o;2003:105:21:-;2058:4;2081:20;:7;2093;2081:20;:11;:20;:::i;9160:83:3:-;9216:20;9229:6;9216:12;:20::i;7109:108:1:-;2398:17:3;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7186:24:1;:22;:24::i;10868:115:3:-;10963:5;:12;-1:-1:-1;10954:21:3;10868:115::o;9973:300::-;10032:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10055:6;2885:22;2900:6;2885:14;:22::i;:::-;2884:23;2876:57;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;;;;10073:17;10093:5;10099:6;10093:13;;;;;;;;;;;;;;;;10116;10093;;;;;10116;;;:20;;-1:-1:-1;;10116:20:3;10132:4;10116:20;;;;;;10167:18;;10093:13;;-1:-1:-1;10167:25:3;;:18;:25;:22;:25;:::i;:::-;10146:18;:46;;;10234:16;;;10225:7;;10252:13;;;;10207:59;;;10252:13;;;;10207:59;;;;;-1:-1:-1;;;;;10234:16:3;;;;10207:59;;;;;;;;;2943:1;2683;9973:300;;:::o;10315:168::-;10388:9;10383:94;10407:7;:14;10403:1;:18;10383:94;;;10442:24;10455:7;10463:1;10455:10;;;;;;;;;;;;;;10442:12;:24::i;:::-;10423:3;;10383:94;;11025:223;11088:4;11109:21;11123:6;11109:13;:21::i;:::-;11104:65;;-1:-1:-1;11153:5:3;11146:12;;11104:65;11179:16;;:::i;:::-;11198:5;11204:6;11198:13;;;;;;;;;;;;;;;;;11179:32;;;;;;;;11198:13;;;;;;;11179:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11025:223:3;;;:::o;9846:115:1:-;9951:2;9942:11;;;;;;;9846:115::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;9430:234:1:-;9488:27;9507:7;9488:18;:27::i;:::-;-1:-1:-1;;;;;9547:23:1;9525:19;9547:23;;;:14;:23;;;;;9580:12;;:20;;-1:-1:-1;;;;9580:20:1;;;9430:234::o;1837:205:20:-;1899:31;1922:7;1899:22;:31::i;:::-;-1:-1:-1;;;;;1940:25:20;;1968:5;1940:25;;;:16;:25;;;;;:33;;-1:-1:-1;;1940:33:20;;;2007:21;;:28;;1940:33;2007:28;:25;:28;:::i;:::-;1983:21;:52;-1:-1:-1;1837:205:20:o;9797:134:3:-;9843:17;:24;;-1:-1:-1;;9843:24:3;;;;;;;;;9882:42;;;9906:17;;;;9843:24;9906:17;9882:42;;;;;;;;;;;;;;;9797:134::o;9285:144::-;9334:19;:27;;-1:-1:-1;;9334:27:3;;;9376:46;;;9356:5;9376:46;;;;;;;;;;;;;9285:144::o;8839:472:1:-;9042:24;9058:7;9042:15;:24::i;:::-;9092:10;:17;9119:18;;:::i;:::-;9140:34;;;;;;;;9146:5;9140:34;;;;9153:7;-1:-1:-1;;;;;9140:34:1;;;;;9162:4;9140:34;;;;;;9168:5;9140:34;;;;;9119:55;;9184:10;9200:5;9184:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9184:22:1;;;;;-1:-1:-1;;;;;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9242:5;9216:14;:23;9231:7;-1:-1:-1;;;;;9216:23:1;-1:-1:-1;;;;;9216:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9216:31:1;;;;;-1:-1:-1;;;;;9216:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8839:472;;;:::o;8386:136::-;8433:17;:25;;-1:-1:-1;;8433:25:1;;;8473:42;;;8453:5;8473:42;;;;;;;;;;;;;8386:136::o;8586:134::-;8632:17;:24;;-1:-1:-1;;8632:24:1;8652:4;8632:24;;;;;8671:42;;;8632:24;8695:17;;;;8671:42;;;;;;;;;;;;;;8586:134::o;9471:142:3:-;9519:19;:26;;-1:-1:-1;;9519:26:3;9541:4;9519:26;;;;;9560:46;;;9519:26;9586:19;;;;9560:46;;;;;;;;;;;;;;9471:142::o;1599:232:20:-;1658:28;1678:7;1658:19;:28::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:25;:28::i;10525:301:3:-;10584:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10607:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;10625:17;10645:5;10651:6;10645:13;;;;;;;;;;;;;;;;;;;;;10668;;;:21;;-1:-1:-1;;10668:21:3;;;10720:18;;10645:13;;-1:-1:-1;10720:25:3;;-1:-1:-1;10720:22:3;:25::i;9619:136::-;9666:17;:25;;-1:-1:-1;;9666:25:3;;;;;9706:42;;;9666:25;9730:17;;;9666:25;9730:17;9706:42;;;;;;;;;;;;;;9619:136::o;1408:185:20:-;1466:27;1485:7;1466:18;:27::i;:::-;-1:-1:-1;;;;;1503:21:20;;1527:5;1503:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1503:29:20;;;1562:17;;:24;;1503:29;1562:24;:21;:24;:::i;:::-;1542:17;:44;-1:-1:-1;1408:185:20:o;2589:136:22:-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;1194:208:20:-;1249:24;1265:7;1249:15;:24::i;:::-;1283:6;27:10:-1;;39:1;23:18;;;45:23;;;1283:20:20;;;;-1:-1:-1;;;;;;1283:20:20;-1:-1:-1;;;;;1283:20:20;;;;;;;;-1:-1:-1;1313:21:20;;;:12;1283:20;1313:21;;;;:28;;-1:-1:-1;;1313:28:20;;;;;1371:17;;:24;;:21;:24::i;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;2441:124:21:-;2499:23;:7;2514;2499:23;:14;:23;:::i;:::-;2537:21;;-1:-1:-1;;;;;2537:21:21;;;;;;;;2441:124;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o;2319:116:21:-;2374:20;:7;2386;2374:20;:11;:20;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;71:129:9:-;;;;;;;;;-1:-1:-1;71:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;71:129:9;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../core/ContestBracketRegistry.sol\";\n\ncontract ContestBracketRegistryMock is ContestBracketRegistry {\n constructor() public ContestBracketRegistry(msg.sender) {}\n\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getEvaluationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getWinnersIds()\":{\"returns\":{\"_0\":\"{uint256} First place's id\",\"_1\":\"{uint256} Second place's id\",\"_2\":\"{uint256} Third place's id\"}},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol\":\"ContestBracketRegistryMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xd1196a748082cce096e21d641038731001120bb5541da30f790f60e25755f47f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bca457ac99eada6a9ced6bce02820693a3a01d593b999f53efd2de08e76d1ff\",\"dweb:/ipfs/QmV5ZNGfyjhfXD8g9Akt2bLm8dthjfe5bCm1xdXSbgm3sS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol\":{\"keccak256\":\"0xa5e9062082d0f6099cd0c1ac039e4390edc289bb13fafc34347b62ac5bc0e274\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d37f0b38d67a708c35cf8b3044fafceedeca39ea38cf33461d4dbb8c9005c24\",\"dweb:/ipfs/QmbuomwbVm6ehYiwxZ6wfAmDtLyT1Hkc7JtLoyPzo8pgNS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b503380808062000068576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b62000073816200007c565b505050620002b7565b62000092816200011660201b62001a8c1760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a546200011092909162000168811b62001ace17901c565b600a5550565b62000131816004620001ca60201b62001b2f1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015620001c3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620001d682826200024e565b1562000229576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002975760405162461bcd60e51b815260040180806020018281038252602281526020018062002a4a6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61278380620002c76000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c80637dc673bc116100f9578063d06e4ee711610097578063eaf2f9cd11610071578063eaf2f9cd1461053e578063ed896d6614610561578063f540548b14610587578063ffc6ff1e146105a4576101a8565b8063d06e4ee714610508578063e35fb24114610510578063e4725f0214610518576101a8565b8063a2bce8bd116100d3578063a2bce8bd146104ca578063ae237c77146104d2578063ae2ac4ae146104da578063b2a13f9214610500576101a8565b80637dc673bc1461049457806390d768e41461049c578063927cab47146104a4576101a8565b80634b30b66f11610166578063567ad86211610140578063567ad8621461041a57806358e2f50e14610422578063737a63401461042a5780637385712c14610450576101a8565b80634b30b66f146103e45780634ea701a8146103ec57806354e1db2b14610412576101a8565b80628e0f1b146101ad57806324ba9fab146101ff578063288c4a461461021e5780633e091f641461028e5780633ed2b77a1461035057806341676f15146103aa575b600080fd5b6101ca600480360360208110156101c357600080fd5b50356105ac565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b61021c6004803603602081101561021557600080fd5b5035610690565b005b61021c6004803603602081101561023457600080fd5b81019060208101813564010000000081111561024f57600080fd5b82018360208201111561026157600080fd5b8035906020019184602083028401116401000000008311171561028357600080fd5b50909250905061069c565b61021c600480360360408110156102a457600080fd5b8101906020810181356401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460208302840111640100000000831117156102f357600080fd5b91939092909160208101903564010000000081111561031157600080fd5b82018360208201111561032357600080fd5b8035906020019184602083028401116401000000008311171561034557600080fd5b5090925090506106dc565b61036d6004803603602081101561036657600080fd5b5035610a6b565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6103d0600480360360208110156103c057600080fd5b50356001600160a01b0316610ac1565b604080519115158252519081900360200190f35b61021c610ad6565b6101ca6004803603602081101561040257600080fd5b50356001600160a01b0316610ae1565b6103d0610bb2565b61021c610bc0565b61021c610bc9565b610432610c67565b60408051938452602084019290925282820152519081900360600190f35b6104826004803603606081101561046657600080fd5b508035906001600160a01b036020820135169060400135610c75565b60408051918252519081900360200190f35b61021c611042565b61021c6110de565b61021c600480360360208110156104ba57600080fd5b50356001600160a01b03166115a4565b6103d06115f1565b61021c6115fa565b61021c600480360360208110156104f057600080fd5b50356001600160a01b0316611694565b61021c6116e1565b61021c61177a565b6103d0611815565b61021c6004803603602081101561052e57600080fd5b50356001600160a01b031661181e565b61021c6004803603604081101561055457600080fd5b508035906020013561186b565b6103d06004803603602081101561057757600080fd5b50356001600160a01b03166119d7565b61021c6004803603602081101561059d57600080fd5b50356119e4565b61021c6119ed565b6000806000806000856105be81611bb0565b610601576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061061057fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61069981611bb7565b50565b6106d8828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cf392505050565b5050565b600e5460ff1661072a576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610733336119d7565b61076e5760405162461bcd60e51b815260040180806020018281038252602b81526020018061263b602b913960400191505060405180910390fd5b8281146107ac5760405162461bcd60e51b81526004018080602001828103825260338152602001806126f96033913960400191505060405180910390fd5b60025483146107ec5760405162461bcd60e51b815260040180806020018281038252603f8152602001806126ba603f913960400191505060405180910390fd5b600060025411610843576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff161561089d5760405162461bcd60e51b81526004018080602001828103825260228152602001806126196022913960400191505060405180910390fd5b60005b600254811015610a0b5760008686838181106108b857fe5b90506020020135905060008585848181106108cf57fe5b9050602002013560ff1690506108e482611bb0565b610927576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61093082611d23565b610978576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61098181611db7565b6109c2576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b6000600183815481106109d157fe5b906000526020600020906006020190506109fb8260ff168260050154611ace90919063ffffffff16565b60059091015550506001016108a0565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b60018181548110610a7b57600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000610ace600483611dc3565b90505b919050565b610adf33611e2a565b565b6000808080806001600160a01b038616610b39576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b610adf33611e5a565b600354610100900460ff1615610c1b576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b610c2433610ac1565b610c5f5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf611e97565b600f54601554601b54909192565b60035460009060ff16610cc8576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916610d2a576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610d85576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610df5576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb9092019190915582549192909183908110610f5d57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff1990921691909117905560059182015491909201559054610fee91611ace565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611092576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61109b33610ac1565b6110d65760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf611ee7565b60035460ff161561112d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff161561117f576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156111cc576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6111d533610ac1565b6112105760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b60215460ff1615611261576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116112ae576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6112b66125e3565b6112be6125e3565b6112c66125e3565b6112ce6125e3565b60005b6001548110156113b957600181815481106112e857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a082015295508061136057508160a001518560a00151105b1561136a576113b1565b8360a001518560a0015111156113845784939291506113b1565b8260a001518560a00151111561139d57849291506113b1565b8160a001518560a0015111156113b1578491505b6001016112d1565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b6115ad33610ac1565b6115e85760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b61069981611f27565b600e5460ff1690565b600e5460ff16611648576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b61165133610ac1565b61168c5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6120b8565b61169d33610ac1565b6116d85760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b61069981611e2a565b600e5460ff161561172e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61173733610ac1565b6117725760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6120f8565b60035460ff16156117c9576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6117d233610ac1565b61180d5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf612142565b60035460ff1690565b61182733610ac1565b6118625760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b6106998161218c565b8161187581611bb0565b6118b8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826118c281611d23565b61190a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661195d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061196c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b6000610ace600583611dc3565b61069981612203565b600354610100900460ff16611a40576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611a4933610ac1565b611a845760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6122de565b611a97600482611b2f565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015611b28576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b611b398282611dc3565b15611b8b576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b80611bc181611bb0565b611c04576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81611c0e81611d23565b15611c58576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110611c6757fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250611c9a9190611ace565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b81518110156106d857611d1b828281518110611d0e57fe5b6020026020010151612203565b600101611cf6565b6000611d2e82611bb0565b611d3a57506000610ad1565b600060018381548110611d4957fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b038216611e0a5760405162461bcd60e51b815260040180806020018281038252602281526020018061272c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611e3381612329565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b611e6381612366565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54611e919060016123a8565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b611f30816123ea565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61219581611a8c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54611e9191611ace565b8061220d81611bb0565b612250576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161225a81611d23565b6122a2576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b6000600184815481106122b157fe5b6000918252602090912060069091020160048101805460ff19169055600254909150611c9a9060016123a8565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b61233281612461565b6001600160a01b0381166000908152600860205260409020805460ff191690556007546123609060016123a8565b60075550565b6123716004826124a3565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6000611b2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061250a565b6123f3816125a1565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff19168217905560075461236091611ace565b61246c6005826124a3565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b6124ad8282611dc3565b6124e85760405162461bcd60e51b81526004018080602001828103825260218152602001806126996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081848411156125995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561255e578181015183820152602001612546565b50505050905090810190601f16801561258b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6125ac600582611b2f565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d734c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220065d41154009d9db868d9cbe8b10df1c35c29c072705b64322b2a155ff1edf6b64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a85760003560e01c80637dc673bc116100f9578063d06e4ee711610097578063eaf2f9cd11610071578063eaf2f9cd1461053e578063ed896d6614610561578063f540548b14610587578063ffc6ff1e146105a4576101a8565b8063d06e4ee714610508578063e35fb24114610510578063e4725f0214610518576101a8565b8063a2bce8bd116100d3578063a2bce8bd146104ca578063ae237c77146104d2578063ae2ac4ae146104da578063b2a13f9214610500576101a8565b80637dc673bc1461049457806390d768e41461049c578063927cab47146104a4576101a8565b80634b30b66f11610166578063567ad86211610140578063567ad8621461041a57806358e2f50e14610422578063737a63401461042a5780637385712c14610450576101a8565b80634b30b66f146103e45780634ea701a8146103ec57806354e1db2b14610412576101a8565b80628e0f1b146101ad57806324ba9fab146101ff578063288c4a461461021e5780633e091f641461028e5780633ed2b77a1461035057806341676f15146103aa575b600080fd5b6101ca600480360360208110156101c357600080fd5b50356105ac565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b61021c6004803603602081101561021557600080fd5b5035610690565b005b61021c6004803603602081101561023457600080fd5b81019060208101813564010000000081111561024f57600080fd5b82018360208201111561026157600080fd5b8035906020019184602083028401116401000000008311171561028357600080fd5b50909250905061069c565b61021c600480360360408110156102a457600080fd5b8101906020810181356401000000008111156102bf57600080fd5b8201836020820111156102d157600080fd5b803590602001918460208302840111640100000000831117156102f357600080fd5b91939092909160208101903564010000000081111561031157600080fd5b82018360208201111561032357600080fd5b8035906020019184602083028401116401000000008311171561034557600080fd5b5090925090506106dc565b61036d6004803603602081101561036657600080fd5b5035610a6b565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6103d0600480360360208110156103c057600080fd5b50356001600160a01b0316610ac1565b604080519115158252519081900360200190f35b61021c610ad6565b6101ca6004803603602081101561040257600080fd5b50356001600160a01b0316610ae1565b6103d0610bb2565b61021c610bc0565b61021c610bc9565b610432610c67565b60408051938452602084019290925282820152519081900360600190f35b6104826004803603606081101561046657600080fd5b508035906001600160a01b036020820135169060400135610c75565b60408051918252519081900360200190f35b61021c611042565b61021c6110de565b61021c600480360360208110156104ba57600080fd5b50356001600160a01b03166115a4565b6103d06115f1565b61021c6115fa565b61021c600480360360208110156104f057600080fd5b50356001600160a01b0316611694565b61021c6116e1565b61021c61177a565b6103d0611815565b61021c6004803603602081101561052e57600080fd5b50356001600160a01b031661181e565b61021c6004803603604081101561055457600080fd5b508035906020013561186b565b6103d06004803603602081101561057757600080fd5b50356001600160a01b03166119d7565b61021c6004803603602081101561059d57600080fd5b50356119e4565b61021c6119ed565b6000806000806000856105be81611bb0565b610601576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061061057fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61069981611bb7565b50565b6106d8828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611cf392505050565b5050565b600e5460ff1661072a576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610733336119d7565b61076e5760405162461bcd60e51b815260040180806020018281038252602b81526020018061263b602b913960400191505060405180910390fd5b8281146107ac5760405162461bcd60e51b81526004018080602001828103825260338152602001806126f96033913960400191505060405180910390fd5b60025483146107ec5760405162461bcd60e51b815260040180806020018281038252603f8152602001806126ba603f913960400191505060405180910390fd5b600060025411610843576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff161561089d5760405162461bcd60e51b81526004018080602001828103825260228152602001806126196022913960400191505060405180910390fd5b60005b600254811015610a0b5760008686838181106108b857fe5b90506020020135905060008585848181106108cf57fe5b9050602002013560ff1690506108e482611bb0565b610927576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61093082611d23565b610978576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61098181611db7565b6109c2576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b6000600183815481106109d157fe5b906000526020600020906006020190506109fb8260ff168260050154611ace90919063ffffffff16565b60059091015550506001016108a0565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b60018181548110610a7b57600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000610ace600483611dc3565b90505b919050565b610adf33611e2a565b565b6000808080806001600160a01b038616610b39576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b610adf33611e5a565b600354610100900460ff1615610c1b576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b610c2433610ac1565b610c5f5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf611e97565b600f54601554601b54909192565b60035460009060ff16610cc8576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916610d2a576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610d85576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610df5576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb9092019190915582549192909183908110610f5d57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff1990921691909117905560059182015491909201559054610fee91611ace565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611092576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61109b33610ac1565b6110d65760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf611ee7565b60035460ff161561112d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff161561117f576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156111cc576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6111d533610ac1565b6112105760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b60215460ff1615611261576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116112ae576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6112b66125e3565b6112be6125e3565b6112c66125e3565b6112ce6125e3565b60005b6001548110156113b957600181815481106112e857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a082015295508061136057508160a001518560a00151105b1561136a576113b1565b8360a001518560a0015111156113845784939291506113b1565b8260a001518560a00151111561139d57849291506113b1565b8160a001518560a0015111156113b1578491505b6001016112d1565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b6115ad33610ac1565b6115e85760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b61069981611f27565b600e5460ff1690565b600e5460ff16611648576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b61165133610ac1565b61168c5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6120b8565b61169d33610ac1565b6116d85760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b61069981611e2a565b600e5460ff161561172e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61173733610ac1565b6117725760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6120f8565b60035460ff16156117c9576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6117d233610ac1565b61180d5760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf612142565b60035460ff1690565b61182733610ac1565b6118625760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b6106998161218c565b8161187581611bb0565b6118b8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826118c281611d23565b61190a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661195d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061196c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b6000610ace600583611dc3565b61069981612203565b600354610100900460ff16611a40576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611a4933610ac1565b611a845760405162461bcd60e51b81526004018080602001828103825260338152602001806126666033913960400191505060405180910390fd5b610adf6122de565b611a97600482611b2f565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015611b28576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b611b398282611dc3565b15611b8b576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b80611bc181611bb0565b611c04576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81611c0e81611d23565b15611c58576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110611c6757fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250611c9a9190611ace565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b81518110156106d857611d1b828281518110611d0e57fe5b6020026020010151612203565b600101611cf6565b6000611d2e82611bb0565b611d3a57506000610ad1565b600060018381548110611d4957fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b038216611e0a5760405162461bcd60e51b815260040180806020018281038252602281526020018061272c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611e3381612329565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b611e6381612366565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54611e919060016123a8565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b611f30816123ea565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61219581611a8c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54611e9191611ace565b8061220d81611bb0565b612250576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161225a81611d23565b6122a2576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b6000600184815481106122b157fe5b6000918252602090912060069091020160048101805460ff19169055600254909150611c9a9060016123a8565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b61233281612461565b6001600160a01b0381166000908152600860205260409020805460ff191690556007546123609060016123a8565b60075550565b6123716004826124a3565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6000611b2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061250a565b6123f3816125a1565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff19168217905560075461236091611ace565b61246c6005826124a3565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b6124ad8282611dc3565b6124e85760405162461bcd60e51b81526004018080602001828103825260218152602001806126996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081848411156125995760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561255e578181015183820152602001612546565b50505050905090810190601f16801561258b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6125ac600582611b2f565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe4a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d734c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220065d41154009d9db868d9cbe8b10df1c35c29c072705b64322b2a155ff1edf6b64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "119:122:9:-:0;;;187:51;;;;;;;;;-1:-1:-1;224:10:9;;;748:30:22;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;692:159;944:84:20;2035:99:1;119:122:9;;1682:241:20;1750:28;1770:7;1750:19;;;;;:28;;:::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1864:21;:52;-1:-1:-1;1682:241:20:o;1314:136:22:-;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;119:122:9:-;;;;;;;", + "deployedSourceMap": "119:122:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:293:3;;;;;;;;;;;;;;;;-1:-1:-1;3411:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8420:83;;;;;;;;;;;;;;;;-1:-1:-1;8420:83:3;;:::i;:::-;;8795:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8795:98:3;;-1:-1:-1;8795:98:3;-1:-1:-1;8795:98:3;:::i;2743:1555:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2743:1555:1;;-1:-1:-1;2743:1555:1;-1:-1:-1;2743:1555:1;:::i;1152:19:3:-;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:113:22;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1046:73:21;;;:::i;4144:332:3:-;;;;;;;;;;;;;;;;-1:-1:-1;4144:332:3;-1:-1:-1;;;;;4144:332:3;;:::i;8046:101::-;;;:::i;1227:81:22:-;;;:::i;7475:117:1:-;;;:::i;6323:145::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:1108:3;;;;;;;;;;;;;;;;-1:-1:-1;4859:1108:3;;;-1:-1:-1;;;;;4859:1108:3;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6599:123:1;;;:::i;4466:1656::-;;;:::i;1034:100:20:-;;;;;;;;;;;;;;;;-1:-1:-1;1034:100:20;-1:-1:-1;;;;;1034:100:20;;:::i;8296:101:1:-;;;:::i;7775:102::-;;;:::i;1140:97:20:-;;;;;;;;;;;;;;;;-1:-1:-1;1140:97:20;-1:-1:-1;;;;;1140:97:20;;:::i;8059:102:1:-;;;:::i;6852:123::-;;;:::i;7231:105:3:-;;;:::i;1122:99:22:-;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;6178:343:3:-;;;;;;;;;;;;;;;;-1:-1:-1;6178:343:3;;;;;;;:::i;801:105:21:-;;;;;;;;;;;;;;;;-1:-1:-1;801:105:21;-1:-1:-1;;;;;801:105:21;;:::i;9164:83:3:-;;;;;;;;;;;;;;;;-1:-1:-1;9164:83:3;;:::i;7167:117:1:-;;;:::i;3411:293:3:-;3517:7;3526;3535;3544:4;3550:7;3492:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;3573:16:::1;3592:5;3598:6;3592:13;;;;;;;;;::::0;;;::::1;::::0;;;;3573:32:::1;::::0;;::::1;::::0;::::1;::::0;;3592:13:::1;::::0;;;::::1;::::0;;::::1;3573:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3573:32:3::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;-1:-1:-1;3411:293:3;-1:-1:-1;;;;3411:293:3:o;8420:83::-;8476:20;8489:6;8476:12;:20::i;:::-;8420:83;:::o;8795:98::-;8864:22;8878:7;;8864:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8864:13:3;;-1:-1:-1;;;8864:22:3:i;:::-;8795:98;;:::o;2743:1555:1:-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;710:19:21::1;718:10;710:7;:19::i;:::-;702:75;;;;-1:-1:-1::0;;;702:75:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:35:1::0;;::::2;2900:99;;;;-1:-1:-1::0;;;2900:99:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:18;::::0;3030:36;::::2;3009:146;;;;-1:-1:-1::0;;;3009:146:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:1;3173:18;;:22;3165:64;;;::::0;;-1:-1:-1;;;3165:64:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3276:10;3239:19;3261:26:::0;;;:14:::2;:26;::::0;;;;3306:11:::2;::::0;::::2;::::0;-1:-1:-1;;;3306:11:1;::::2;;;3305:12;3297:59;;;;-1:-1:-1::0;;;3297:59:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3371:9;3366:801;3390:18;;3386:1;:22;3366:801;;;3429:14;3446:7;;3454:1;3446:10;;;;;;;;;;;;;3429:27;;3470:11;3484:10;;3495:1;3484:13;;;;;;;;;;;;;;;3470:27;;3890:21;3904:6;3890:13;:21::i;:::-;3882:49;;;::::0;;-1:-1:-1;;;3882:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3882:49:1;;;;;;;;;;;;;::::2;;3953:22;3968:6;3953:14;:22::i;:::-;3945:55;;;::::0;;-1:-1:-1;;;3945:55:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3945:55:1;;;;;;;;;;;;;::::2;;4022:19;4035:5;4022:12;:19::i;:::-;4014:45;;;::::0;;-1:-1:-1;;;4014:45:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4014:45:1;;;;;;;;;;;;;::::2;;4074:17;4094:5;4100:6;4094:13;;;;;;;;;;;;;;;;;;4074:33;;4134:21;4149:5;4134:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4121:10;::::0;;::::2;:34:::0;-1:-1:-1;;3410:3:1::2;;3366:801;;;-1:-1:-1::0;4232:4:1::2;4218:11:::0;::::2;:18:::0;;-1:-1:-1;;;;4218:18:1::2;-1:-1:-1::0;;;4218:18:1::2;::::0;;;;4262:8;;4251:40:::2;::::0;;-1:-1:-1;;;;;4272:18:1;;::::2;4251:40:::0;;;4262:8;;4251:40:::2;::::0;;;;;::::2;::::0;;::::2;787:1:21;2743:1555:1::0;;;;:::o;1152:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;:::o;1003:113:22:-;1062:4;1085:24;:11;1101:7;1085:15;:24::i;:::-;1078:31;;1003:113;;;;:::o;1046:73:21:-;1088:24;1101:10;1088:12;:24::i;:::-;1046:73::o;4144:332:3:-;4212:7;;;;;-1:-1:-1;;;;;4272:25:3;;4264:58;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4351:26:3;;;4332:16;4351:26;;;;;;;;;;;;4332:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4332:45:3;4144:332::o;8046:101::-;8123:17;;;;;;;;8046:101::o;1227:81:22:-;1273:28;1290:10;1273:16;:28::i;7475:117:1:-;2562:17:3;;;;;;;2561:18;2553:49;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:23:1::2;:21;:23::i;6323:145::-:0;6416:10;:13;6431:11;:14;6447:10;:13;6323:145;;;:::o;4859:1108:3:-;2212:19;;5003:7;;2212:19;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;5034:8;5043:1:::1;5034:11;;;-1:-1:-1::0;;;;;;5034:16:3::1;5026:54;;;::::0;;-1:-1:-1;;;5026:54:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5098:25:3;::::1;5090:65;;;::::0;;-1:-1:-1;;;5090:65:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5173:26:3;;::::1;5223:1;5173:26:::0;;;::::1;::::0;;;;;;:38:::1;;::::0;::::1;:52:::0;5165:88:::1;;;::::0;;-1:-1:-1;;;5165:88:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5280:5;:12:::0;;5679:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5679:58:3;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;5679:58:3;;;;;;5747:16;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5747:16:3::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;-1:-1:-1;;5747:16:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;5802:13;;5280:12;;5679:58;;5280:12;;5802:13;::::1;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;5773:26:3;;::::1;::::0;;;;;;;;;;5802:13:::1;::::0;;::::1;::::0;;::::1;5773:42:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;5773:42:3::1;::::0;;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;5773:42:3;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;5846:18;;:25:::1;::::0;:22:::1;:25::i;:::-;5825:18;:46:::0;5886:51:::1;::::0;;;;;5932:4:::1;5886:51;::::0;::::1;::::0;;;-1:-1:-1;;;;;5886:51:3;::::1;::::0;5901:6;;5886:51:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;5954:6:3;4859:1108;-1:-1:-1;;;;4859:1108:3:o;6599:123:1:-;2212:19:3;;;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:26:1::2;:24;:26::i;4466:1656::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;2562:17:::1;::::0;::::1;::::0;::::1;;;2561:18;2553:49;;;::::0;;-1:-1:-1;;;2553:49:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;::::1;;1592:17:1::2;::::0;::::2;;1591:18;1583:49;;;::::0;;-1:-1:-1;;;1583:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;::::2;;900:23:22::3;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:13:1::4;::::0;::::4;;1813:14;1805:49;;;::::0;;-1:-1:-1;;;1805:49:1;;::::4;;::::0;::::4;::::0;::::4;::::0;;;;-1:-1:-1;;;1805:49:1;;;;;;;;;;;;;::::4;;4683:1:::5;4662:18;;:22;4654:54;;;::::0;;-1:-1:-1;;;4654:54:1;;::::5;;::::0;::::5;::::0;::::5;::::0;;;;-1:-1:-1;;;4654:54:1;;;;;;;;;;;;;::::5;;4718:19;;:::i;:::-;4747:20;;:::i;:::-;4777:21;;:::i;:::-;4808:20;;:::i;:::-;4844:9;4839:881;4863:5;:12:::0;4859:16;::::5;4839:881;;;4906:5;4912:1;4906:8;;;;;;;;;::::0;;;::::5;::::0;;;;4896:18:::5;::::0;;::::5;::::0;::::5;::::0;;4906:8:::5;::::0;;::::5;::::0;;::::5;4896:18:::0;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;::::5;::::0;-1:-1:-1;;;;;4896:18:1::5;::::0;;;;::::5;::::0;::::5;::::0;;;;;::::5;::::0;::::5;::::0;::::5;;;::::0;::::5;::::0;;;;::::5;::::0;;::::5;::::0;;;;;;-1:-1:-1;4896:18:1;4932:51:::5;;;4969:8;:14;;;4953:7;:13;;;:30;4932:51;4928:213;;;5118:8;;4928:213;5341:8;:14;;;5325:7;:13;;;:30;5321:389;;;5462:7:::0;;5425:8;5386:9;-1:-1:-1;5321:389:1::5;;;5510:9;:15;;;5494:7;:13;;;:31;5490:220;;;5595:7:::0;;5556:9;-1:-1:-1;5490:220:1::5;;;5643:8;:14;;;5627:7;:13;;;:30;5623:87;;;5688:7;5677:18;;5623:87;4877:3;;4839:881;;;-1:-1:-1::0;5730:21:1;;:10:::5;:21:::0;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;;;;;5730:21:1;;::::5;-1:-1:-1::0;;;;;5730:21:1;;::::5;;::::0;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;5730:21:1;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;::::5;::::0;;::::5;::::0;;;;;5761:23;;:11:::5;:23:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;;::::5;::::0;;;5794:21;;:10:::5;:21:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;;::::5;::::0;;::::5;;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;::::5;::::0;;;5825:13:::5;:20:::0;;;;::::5;-1:-1:-1::0;5825:20:1;;::::5;::::0;;;5860:74;;;;;5890:22;;;::::5;5860:74:::0;;::::5;::::0;;;;;;;;;;;;;;;;::::5;::::0;;;;;;;;::::5;5964:11;:14:::0;5980:23;;6005:17;;5949:77:::5;::::0;;;;;-1:-1:-1;;;;;5980:23:1;;::::5;5949:77;::::0;::::5;::::0;;;;;5980:23:::5;5949:77:::0;;;;;::::5;::::0;;;;;;;::::5;6056:10;:13:::0;6071:22;;6095:16;;;6041:74:::5;::::0;;;;;-1:-1:-1;;;;;6071:22:1;;::::5;6041:74:::0;;::::5;::::0;;;;;;;;6113:1:::5;6041:74:::0;;;;;::::5;::::0;;;;;;;::::5;1864:1;;;;4466:1656::o:0;1034:100:20:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:18:20::1;1119:7;1109:9;:18::i;8296:101:1:-:0;8373:17;;;;8296:101;:::o;7775:102::-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7852:18:1::2;:16;:18::i;1140:97:20:-:0;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:21:20::1;1222:7;1209:12;:21::i;8059:102:1:-:0;1592:17;;;;1591:18;1583:49;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8137:17:1::2;:15;:17::i;6852:123::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:25:1::2;:23;:25::i;7231:105:3:-:0;7310:19;;;;7231:105;:::o;1122:99:22:-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;6178:343:3:-:0;6281:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;6312:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;2447:17:::2;::::0;::::2;::::0;::::2;;;2439:50;;;::::0;;-1:-1:-1;;;2439:50:3;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;::::2;;6359:17:::3;6379:5;6385:6;6379:13;;;;;;;;;::::0;;;::::3;::::0;;;;6402:17:::3;6379:13;::::0;;::::3;;6402:17:::0;;::::3;:32:::0;;;6478:16:::3;::::0;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;6379:13;;-1:-1:-1;;;;;;6478:16:3;;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;;::::3;2499:1;2732::::1;6178:343:::0;;;:::o;801:105:21:-;856:4;879:20;:7;891;879:11;:20::i;9164:83:3:-;9220:20;9233:6;9220:12;:20::i;7167:117:1:-;2447:17:3;;;;;;;2439:50;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:24:1::2;:22;:24::i;1314:136:22:-:0;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;10872:115:3:-;10967:5;:12;-1:-1:-1;10958:21:3;10872:115::o;9977:300::-;10036:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10059:6:::1;2934:22;2949:6;2934:14;:22::i;:::-;2933:23;2925:57;;;::::0;;-1:-1:-1;;;2925:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2925:57:3;;;;;;;;;;;;;::::1;;10077:17:::2;10097:5;10103:6;10097:13;;;;;;;;;::::0;;;::::2;::::0;;;10120::::2;10097;::::0;;::::2;;10120::::0;;::::2;:20:::0;;-1:-1:-1;;10120:20:3::2;10136:4;10120:20:::0;;::::2;::::0;;;10171:18:::2;::::0;10097:13;;-1:-1:-1;10171:25:3::2;::::0;:18;:22:::2;:25::i;:::-;10150:18;:46:::0;;;10238:16;::::2;::::0;10229:7;;10256:13:::2;::::0;::::2;::::0;10211:59:::2;::::0;;10256:13:::2;::::0;;::::2;10211:59;;::::0;;;-1:-1:-1;;;;;10238:16:3;;::::2;::::0;10211:59:::2;::::0;;;;::::2;::::0;;::::2;2992:1;2732::::1;9977:300:::0;;:::o;10319:168::-;10392:9;10387:94;10411:7;:14;10407:1;:18;10387:94;;;10446:24;10459:7;10467:1;10459:10;;;;;;;;;;;;;;10446:12;:24::i;:::-;10427:3;;10387:94;;11029:223;11092:4;11113:21;11127:6;11113:13;:21::i;:::-;11108:65;;-1:-1:-1;11157:5:3;11150:12;;11108:65;11183:16;11202:5;11208:6;11202:13;;;;;;;;;;;;;;;;;11183:32;;;;;;;;11202:13;;;;;;;11183:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11183:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11029:223:3;;;:::o;9940:115:1:-;10045:2;10036:11;;;;;;;9940:115::o;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;9515:243:1:-;9582:27;9601:7;9582:18;:27::i;:::-;-1:-1:-1;;;;;9641:23:1;9619:19;9641:23;;;:14;:23;;;;;9674:12;;:20;;-1:-1:-1;;;;9674:20:1;;;9515:243::o;1929:214:20:-;2000:31;2023:7;2000:22;:31::i;:::-;-1:-1:-1;;;;;2041:25:20;;2069:5;2041:25;;;:16;:25;;;;;:33;;-1:-1:-1;;2041:33:20;;;2108:21;;:28;;2041:33;2108:25;:28::i;:::-;2084:21;:52;-1:-1:-1;1929:214:20:o;9801:134:3:-;9847:17;:24;;-1:-1:-1;;9847:24:3;;;;;;;;;9886:42;;;9910:17;;;;9847:24;9910:17;9886:42;;;;;;;;;;;;;;;9801:134::o;9289:144::-;9338:19;:27;;-1:-1:-1;;9338:27:3;;;9380:46;;;9360:5;9380:46;;;;;;;;;;;;;9289:144::o;8915:481:1:-;9127:24;9143:7;9127:15;:24::i;:::-;9161:13;9177:10;:17;;;;9161:33;;9204:18;9225:34;;;;;;;;9231:5;9225:34;;;;9238:7;-1:-1:-1;;;;;9225:34:1;;;;;9247:4;9225:34;;;;;;9253:5;9225:34;;;;;9204:55;;9269:10;9285:5;9269:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9269:22:1;;;;;-1:-1:-1;;;;;9269:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9327:5;9301:14;:23;9316:7;-1:-1:-1;;;;;9301:23:1;-1:-1:-1;;;;;9301:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9301:31:1;;;;;-1:-1:-1;;;;;9301:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:481;;;:::o;8462:136::-;8509:17;:25;;-1:-1:-1;;8509:25:1;;;8549:42;;;8529:5;8549:42;;;;;;;;;;;;;8462:136::o;8662:134::-;8708:17;:24;;-1:-1:-1;;8708:24:1;8728:4;8708:24;;;;;8747:42;;;8708:24;8771:17;;;;8747:42;;;;;;;;;;;;;;8662:134::o;9475:142:3:-;9523:19;:26;;-1:-1:-1;;9523:26:3;9545:4;9523:26;;;;;9564:46;;;9523:26;9590:19;;;;9564:46;;;;;;;;;;;;;;9475:142::o;1682:241:20:-;1750:28;1770:7;1750:19;:28::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:25;:28::i;10529:301:3:-;10588:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10611:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;10629:17:::2;10649:5;10655:6;10649:13;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10672;::::0;::::2;:21:::0;;-1:-1:-1;;10672:21:3::2;::::0;;10724:18:::2;::::0;10649:13;;-1:-1:-1;10724:25:3::2;::::0;-1:-1:-1;10724:22:3::2;:25::i;9623:136::-:0;9670:17;:25;;-1:-1:-1;;9670:25:3;;;;;9710:42;;;9670:25;9734:17;;;9670:25;9734:17;9710:42;;;;;;;;;;;;;;9623:136::o;1474:202:20:-;1549:27;1568:7;1549:18;:27::i;:::-;-1:-1:-1;;;;;1586:21:20;;1610:5;1586:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1586:29:20;;;1645:17;;:24;;1586:29;1645:21;:24::i;:::-;1625:17;:44;-1:-1:-1;1474:202:20:o;1456:144:22:-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;1243:225:20:-;1315:24;1331:7;1315:15;:24::i;:::-;1349:6;:20;;;;;;;;;;;;;-1:-1:-1;;;;;;1349:20:20;-1:-1:-1;;;;;1349:20:20;;;;;;;;-1:-1:-1;1379:21:20;;;:12;1349:20;1379:21;;;;:28;;-1:-1:-1;;1379:28:20;;;;;1437:17;;:24;;:21;:24::i;1255:132:21:-;1321:23;:7;1336;1321:14;:23::i;:::-;1359:21;;-1:-1:-1;;;;;1359:21:21;;;;;;;;1255:132;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o;1754:187:24:-;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o;1125:124:21:-;1188:20;:7;1200;1188:11;:20::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../core/ContestBracketRegistry.sol\";\n\ncontract ContestBracketRegistryMock is ContestBracketRegistry {\n constructor() ContestBracketRegistry(msg.sender) {}\n\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol", "exportedSymbols": { - "ContestBracketRegistryMock": [2555] + "ContestBracketRegistry": [674], + "ContestBracketRegistryMock": [2664], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2556, + "id": 2665, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2543, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2652, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "40:31:9" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "file": "../core/ContestBracketRegistry.sol", - "id": 2544, + "id": 2653, "nodeType": "ImportDirective", - "scope": 2556, - "sourceUnit": 649, - "src": "25:44:9", + "scope": 2665, + "sourceUnit": 675, + "src": "73:44:9", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2545, + "id": 2654, "name": "ContestBracketRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 648, - "src": "110:22:9", + "referencedDeclaration": 674, + "src": "158:22:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestBracketRegistry_$648", + "typeIdentifier": "t_contract$_ContestBracketRegistry_$674", "typeString": "contract ContestBracketRegistry" } }, - "id": 2546, + "id": 2655, "nodeType": "InheritanceSpecifier", - "src": "110:22:9" + "src": "158:22:9" } ], - "contractDependencies": [648, 1698, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2555, - "linearizedBaseContracts": [2555, 648, 3195, 3287, 3401, 1698], + "id": 2664, + "linearizedBaseContracts": [2664, 674, 3326, 3416, 3532, 1772], "name": "ContestBracketRegistryMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2553, + "id": 2662, "nodeType": "Block", - "src": "195:2:9", + "src": "236:2:9", "statements": [] }, - "documentation": null, - "id": 2554, + "id": 2663, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2549, + "id": 2658, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "183:3:9", + "referencedDeclaration": 4294967281, + "src": "224:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2550, + "id": 2659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "183:10:9", + "src": "224:10:9", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2551, + "id": 2660, "modifierName": { - "argumentTypes": null, - "id": 2548, + "id": 2657, "name": "ContestBracketRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 648, - "src": "160:22:9", + "referencedDeclaration": 674, + "src": "201:22:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$648_$", + "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$674_$", "typeString": "type(contract ContestBracketRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "160:34:9" + "src": "201:34:9" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2547, + "id": 2656, "nodeType": "ParameterList", "parameters": [], - "src": "150:2:9" + "src": "198:2:9" }, "returnParameters": { - "id": 2552, + "id": 2661, "nodeType": "ParameterList", "parameters": [], - "src": "195:0:9" + "src": "236:0:9" }, - "scope": 2555, - "src": "139:58:9", + "scope": 2664, + "src": "187:51:9", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2556, - "src": "71:129:9" + "scope": 2665, + "src": "119:122:9" } ], - "src": "0:201:9" + "src": "40:202:9" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestBracketRegistryMock.sol", "exportedSymbols": { - "ContestBracketRegistryMock": [2555] + "ContestBracketRegistry": [674], + "ContestBracketRegistryMock": [2664], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2556, + "id": 2665, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2543, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2652, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "40:31:9" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "file": "../core/ContestBracketRegistry.sol", - "id": 2544, + "id": 2653, "nodeType": "ImportDirective", - "scope": 2556, - "sourceUnit": 649, - "src": "25:44:9", + "scope": 2665, + "sourceUnit": 675, + "src": "73:44:9", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2545, + "id": 2654, "name": "ContestBracketRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 648, - "src": "110:22:9", + "referencedDeclaration": 674, + "src": "158:22:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestBracketRegistry_$648", + "typeIdentifier": "t_contract$_ContestBracketRegistry_$674", "typeString": "contract ContestBracketRegistry" } }, - "id": 2546, + "id": 2655, "nodeType": "InheritanceSpecifier", - "src": "110:22:9" + "src": "158:22:9" } ], - "contractDependencies": [648, 1698, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2555, - "linearizedBaseContracts": [2555, 648, 3195, 3287, 3401, 1698], + "id": 2664, + "linearizedBaseContracts": [2664, 674, 3326, 3416, 3532, 1772], "name": "ContestBracketRegistryMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2553, + "id": 2662, "nodeType": "Block", - "src": "195:2:9", + "src": "236:2:9", "statements": [] }, - "documentation": null, - "id": 2554, + "id": 2663, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2549, + "id": 2658, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "183:3:9", + "referencedDeclaration": 4294967281, + "src": "224:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2550, + "id": 2659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "183:10:9", + "src": "224:10:9", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2551, + "id": 2660, "modifierName": { - "argumentTypes": null, - "id": 2548, + "id": 2657, "name": "ContestBracketRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 648, - "src": "160:22:9", + "referencedDeclaration": 674, + "src": "201:22:9", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$648_$", + "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$674_$", "typeString": "type(contract ContestBracketRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "160:34:9" + "src": "201:34:9" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2547, + "id": 2656, "nodeType": "ParameterList", "parameters": [], - "src": "150:2:9" + "src": "198:2:9" }, "returnParameters": { - "id": 2552, + "id": 2661, "nodeType": "ParameterList", "parameters": [], - "src": "195:0:9" + "src": "236:0:9" }, - "scope": 2555, - "src": "139:58:9", + "scope": 2664, + "src": "187:51:9", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2556, - "src": "71:129:9" + "scope": 2665, + "src": "119:122:9" } ], - "src": "0:201:9" + "src": "40:202:9" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.501Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.087Z", "devdoc": { + "kind": "dev", "methods": { "approveTeam(uint256)": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control.", @@ -1032,28 +983,50 @@ "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." }, "getEvaluationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getWinnersIds()": { - "return": "{uint256} First place's id{uint256} Second place's id{uint256} Third place's id" + "returns": { + "_0": "{uint256} First place's id", + "_1": "{uint256} Second place's id", + "_2": "{uint256} Third place's id" + } }, "openEvaluation()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -1098,10 +1071,15 @@ "teamId": "team's unique identifier; required" } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + }, "approveTeam(uint256)": { "notice": "(re)approves a team in participating in the contest" }, @@ -1159,6 +1137,7 @@ "updateProposalData(uint256,bytes32)": { "notice": "Updates the proposal data for a specific team." } - } + }, + "version": 1 } } diff --git a/build/contracts/ContestMock.json b/build/contracts/ContestMock.json deleted file mode 100644 index 49a579a..0000000 --- a/build/contracts/ContestMock.json +++ /dev/null @@ -1,293 +0,0 @@ -{ - "contractName": "ContestMock", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isOrganizer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOrganizer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "removeJudge", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "addOrganizer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "account", - "type": "address" - } - ], - "name": "isJudge", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "JudgeAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "JudgeRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "OrganizerAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "account", - "type": "address" - } - ], - "name": "OrganizerRemoved", - "type": "event" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/odisi/dev/projects/hackapay/contracts/mocks/ContestMock.sol\":\"ContestMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol\":{\"keccak256\":\"0x8134da2697a050f024e9b2a72399bee001aea1f2f5d2311100ce09586ea6cff6\",\"urls\":[\"bzzr://0cef913a743c86bf0c7ca9c80eff244ef9effa2242adbc8a9caa6e56a86495ba\"]},\"/home/odisi/dev/projects/hackapay/contracts/core/IContest.sol\":{\"keccak256\":\"0xb7b7cf00e0cf438af996b141b42cc14fd353ae6ba2aad567d20fc69124802665\",\"urls\":[\"bzzr://d11a1dd639423573d538b2ca07aca6841573e2c423a88f554b50531fb97e7912\"]},\"/home/odisi/dev/projects/hackapay/contracts/mocks/ContestMock.sol\":{\"keccak256\":\"0x638c8d10ab583d6cc5cb64c17b3ed45ec8142aca0b3e7f580750b3735bd2541e\",\"urls\":[\"bzzr://8dac9ac38dfd55628054a8db6b34df7df7d523e69b7b3fef055fab18e605fad1\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x6dcefe1cf7b789d8e75c3ae69fbadc67ddb82da2bb9a3a050b6d953d322f5323\",\"urls\":[\"bzzr://c6384dc5cd8bd656f75729638cd8a4bf349cbd6436e045f8bbf11b7cb2aaa6cc\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x8ca0c43c75fa548aa501b507ca4763b4ec1a9b8d4e61e0e1b1a7aaf9b0bf7894\",\"urls\":[\"bzzr://4bdf22c3299a6305c6a75a4eec520152b8df0a56dc36a4e055a2c3354c4e08fa\"]},\"/home/odisi/dev/projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0xe1d25d59267121befa1f264b5e790165853367df7cd994cfef57a73272d316a1\",\"urls\":[\"bzzr://f277f47782f8873b8ffb355f48ba49884e2e552278c6aa97d8b9e7586fb59f7b\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\nimport \"../core/Contest.sol\";\n\ncontract ContestMock is Contest {\n// constructor(uint256 _id, bytes32 _name, bytes32 _description) public Contest(_id, _name, _description) {}\n// function getActiveOrganizersCount() public view returns (uint256) {\n// return activeOrganizersCount;\n// }\n\n// function getActiveJudgesCount() public view returns (uint256) {\n// return activeJudgesCount;\n// }\n}\n", - "sourcePath": "/home/odisi/dev/projects/hackapay/contracts/mocks/ContestMock.sol", - "ast": { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/mocks/ContestMock.sol", - "exportedSymbols": { - "ContestMock": [2285] - }, - "id": 2286, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2281, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol", - "file": "../core/Contest.sol", - "id": 2282, - "nodeType": "ImportDirective", - "scope": 2286, - "sourceUnit": 66, - "src": "25:29:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2283, - "name": "Contest", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 65, - "src": "80:7:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Contest_$65", - "typeString": "contract Contest" - } - }, - "id": 2284, - "nodeType": "InheritanceSpecifier", - "src": "80:7:11" - } - ], - "contractDependencies": [65, 2117, 2925, 3017, 3131], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2285, - "linearizedBaseContracts": [2285, 65, 2925, 3017, 3131, 2117], - "name": "ContestMock", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2286, - "src": "56:391:11" - } - ], - "src": "0:448:11" - }, - "legacyAST": { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/mocks/ContestMock.sol", - "exportedSymbols": { - "ContestMock": [2285] - }, - "id": 2286, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2281, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "absolutePath": "/home/odisi/dev/projects/hackapay/contracts/core/Contest.sol", - "file": "../core/Contest.sol", - "id": 2282, - "nodeType": "ImportDirective", - "scope": 2286, - "sourceUnit": 66, - "src": "25:29:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2283, - "name": "Contest", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 65, - "src": "80:7:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Contest_$65", - "typeString": "contract Contest" - } - }, - "id": 2284, - "nodeType": "InheritanceSpecifier", - "src": "80:7:11" - } - ], - "contractDependencies": [65, 2117, 2925, 3017, 3131], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 2285, - "linearizedBaseContracts": [2285, 65, 2925, 3017, 3131, 2117], - "name": "ContestMock", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2286, - "src": "56:391:11" - } - ], - "src": "0:448:11" - }, - "compiler": { - "name": "solc", - "version": "0.5.8+commit.23d335f2.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.11", - "updatedAt": "2019-07-29T15:59:47.396Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} diff --git a/build/contracts/ContestRoleManager.json b/build/contracts/ContestRoleManager.json index 3ce4d47..69b0502 100644 --- a/build/contracts/ContestRoleManager.json +++ b/build/contracts/ContestRoleManager.json @@ -1,18 +1,6 @@ { "contractName": "ContestRoleManager", "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOrganizer", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -66,7 +54,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -76,12 +63,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -97,12 +82,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -118,30 +101,24 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -151,12 +128,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -166,134 +141,142 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOrganizer\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Extends the roles OrganizerRole and JudgeRole and adds access control to public methods, plus controls judges and organizers accounts.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":\"ContestRoleManager\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"}},\"notice\":\"Extends the roles OrganizerRole and JudgeRole and adds access control to public methods, plus controls judges and organizers accounts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":\"ContestRoleManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../roles/OrganizerRole.sol\";\nimport \"../roles/JudgeRole.sol\";\n\n/**\n @notice Extends the roles OrganizerRole and JudgeRole and adds access control\n to public methods, plus controls judges and organizers accounts.\n */\ncontract ContestRoleManager is OrganizerRole, JudgeRole {\n using SafeMath for uint256;\n\n // Judge's helpers\n address[] internal judges; // List of judges\n uint256 internal activeJudgesCount; // Controls active judges count\n mapping(address => bool) internal activeJudges; // Controls active judges state\n // Organizer's helpers\n address[] internal organizers; // List of organizers\n uint256 internal activeOrganizersCount; // Controls active organizers count\n mapping(address => bool) internal activeOrganizers; // Controls active organizers state\n\n constructor(address initialOrganizer) internal OrganizerRole(initialOrganizer) JudgeRole() {}\n\n function addJudge(address account) public onlyOrganizer {\n _addJudge(account);\n }\n\n function removeJudge(address account) public onlyOrganizer {\n _removeJudge(account);\n }\n\n function _addJudge(address account) internal {\n super._addJudge(account);\n judges.push(account);\n activeJudges[account] = true;\n activeJudgesCount = activeJudgesCount.add(1);\n }\n\n function _removeJudge(address account) internal {\n super._removeJudge(account);\n activeJudges[account] = false;\n activeJudgesCount = activeJudgesCount.sub(1);\n }\n\n function _addOrganizer(address account) internal {\n super._addOrganizer(account);\n organizers.push(account);\n activeOrganizers[account] = true;\n activeOrganizersCount = activeOrganizersCount.add(1);\n }\n\n function _removeOrganizer(address account) internal {\n super._removeOrganizer(account);\n activeOrganizers[account] = false;\n activeOrganizersCount = activeOrganizersCount.sub(1);\n }\n}\n", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../roles/OrganizerRole.sol\";\nimport \"../roles/JudgeRole.sol\";\n\n/**\n @notice Extends the roles OrganizerRole and JudgeRole and adds access control\n to public methods, plus controls judges and organizers accounts.\n */\nabstract contract ContestRoleManager is OrganizerRole, JudgeRole {\n using SafeMath for uint256;\n\n // Judge's helpers\n address[] internal judges; // List of judges\n uint256 internal activeJudgesCount; // Controls active judges count\n mapping(address => bool) internal activeJudges; // Controls active judges state\n // Organizer's helpers\n address[] internal organizers; // List of organizers\n uint256 internal activeOrganizersCount; // Controls active organizers count\n mapping(address => bool) internal activeOrganizers; // Controls active organizers state\n\n constructor(address initialOrganizer) OrganizerRole(initialOrganizer) JudgeRole() {}\n\n function addJudge(address account) public override onlyOrganizer {\n _addJudge(account);\n }\n\n function removeJudge(address account) public onlyOrganizer {\n _removeJudge(account);\n }\n\n function _addJudge(address account) virtual internal override {\n super._addJudge(account);\n judges.push(account);\n activeJudges[account] = true;\n activeJudgesCount = activeJudgesCount.add(1);\n }\n\n function _removeJudge(address account) virtual internal override {\n super._removeJudge(account);\n activeJudges[account] = false;\n activeJudgesCount = activeJudgesCount.sub(1);\n }\n\n function _addOrganizer(address account) internal override {\n super._addOrganizer(account);\n organizers.push(account);\n activeOrganizers[account] = true;\n activeOrganizersCount = activeOrganizersCount.add(1);\n }\n\n function _removeOrganizer(address account) internal override {\n super._removeOrganizer(account);\n activeOrganizers[account] = false;\n activeOrganizersCount = activeOrganizersCount.sub(1);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol", "exportedSymbols": { - "ContestRoleManager": [3195] + "ContestRoleManager": [3326], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 3196, + "id": 3327, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3019, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3144, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "40:31:20" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3020, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 3145, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 4216, - "src": "25:59:20", + "scope": 3327, + "sourceUnit": 3815, + "src": "73:51:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 3021, + "id": 3146, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 3402, - "src": "85:36:20", + "scope": 3327, + "sourceUnit": 3533, + "src": "125:36:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "file": "../roles/JudgeRole.sol", - "id": 3022, + "id": 3147, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 3288, - "src": "122:32:20", + "scope": 3327, + "sourceUnit": 3417, + "src": "162:32:20", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 3023, + "id": 3149, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "346:13:20", + "referencedDeclaration": 3532, + "src": "395:13:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 3024, + "id": 3150, "nodeType": "InheritanceSpecifier", - "src": "346:13:20" + "src": "395:13:20" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 3025, + "id": 3151, "name": "JudgeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3287, - "src": "361:9:20", + "referencedDeclaration": 3416, + "src": "410:9:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_JudgeRole_$3287", + "typeIdentifier": "t_contract$_JudgeRole_$3416", "typeString": "contract JudgeRole" } }, - "id": 3026, + "id": 3152, "nodeType": "InheritanceSpecifier", - "src": "361:9:20" + "src": "410:9:20" } ], - "contractDependencies": [3287, 3401], + "contractDependencies": [3416, 3532], "contractKind": "contract", - "documentation": "@notice Extends the roles OrganizerRole and JudgeRole and adds access control\nto public methods, plus controls judges and organizers accounts.", + "documentation": { + "id": 3148, + "nodeType": "StructuredDocumentation", + "src": "196:158:20", + "text": "@notice Extends the roles OrganizerRole and JudgeRole and adds access control\nto public methods, plus controls judges and organizers accounts." + }, "fullyImplemented": true, - "id": 3195, - "linearizedBaseContracts": [3195, 3287, 3401], + "id": 3326, + "linearizedBaseContracts": [3326, 3416, 3532], "name": "ContestRoleManager", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3029, + "id": 3155, "libraryName": { - "contractScope": null, - "id": 3027, + "id": 3153, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "383:8:20", + "referencedDeclaration": 3814, + "src": "432:8:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "377:27:20", + "src": "426:27:20", "typeName": { - "id": 3028, + "id": 3154, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "396:7:20", + "src": "445:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -302,11 +285,12 @@ }, { "constant": false, - "id": 3032, + "id": 3158, + "mutability": "mutable", "name": "judges", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "433:25:20", + "scope": 3326, + "src": "482:25:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -315,35 +299,34 @@ }, "typeName": { "baseType": { - "id": 3030, + "id": 3156, "name": "address", "nodeType": "ElementaryTypeName", - "src": "433:7:20", + "src": "482:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3031, - "length": null, + "id": 3157, "nodeType": "ArrayTypeName", - "src": "433:9:20", + "src": "482:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3034, + "id": 3160, + "mutability": "mutable", "name": "activeJudgesCount", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "482:34:20", + "scope": 3326, + "src": "531:34:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,25 +334,25 @@ "typeString": "uint256" }, "typeName": { - "id": 3033, + "id": 3159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "482:7:20", + "src": "531:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3038, + "id": 3164, + "mutability": "mutable", "name": "activeJudges", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "554:46:20", + "scope": 3326, + "src": "603:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,44 +360,44 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3037, + "id": 3163, "keyType": { - "id": 3035, + "id": 3161, "name": "address", "nodeType": "ElementaryTypeName", - "src": "562:7:20", + "src": "611:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "554:24:20", + "src": "603:24:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3036, + "id": 3162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "573:4:20", + "src": "622:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3041, + "id": 3167, + "mutability": "mutable", "name": "organizers", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "665:29:20", + "scope": 3326, + "src": "714:29:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -423,35 +406,34 @@ }, "typeName": { "baseType": { - "id": 3039, + "id": 3165, "name": "address", "nodeType": "ElementaryTypeName", - "src": "665:7:20", + "src": "714:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3040, - "length": null, + "id": 3166, "nodeType": "ArrayTypeName", - "src": "665:9:20", + "src": "714:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3043, + "id": 3169, + "mutability": "mutable", "name": "activeOrganizersCount", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "722:38:20", + "scope": 3326, + "src": "771:38:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -459,25 +441,25 @@ "typeString": "uint256" }, "typeName": { - "id": 3042, + "id": 3168, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "722:7:20", + "src": "771:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3047, + "id": 3173, + "mutability": "mutable", "name": "activeOrganizers", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "802:50:20", + "scope": 3326, + "src": "851:50:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -485,115 +467,111 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3046, + "id": 3172, "keyType": { - "id": 3044, + "id": 3170, "name": "address", "nodeType": "ElementaryTypeName", - "src": "810:7:20", + "src": "859:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "802:24:20", + "src": "851:24:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3045, + "id": 3171, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "821:4:20", + "src": "870:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "body": { - "id": 3057, + "id": 3183, "nodeType": "Block", - "src": "986:2:20", + "src": "1026:2:20", "statements": [] }, - "documentation": null, - "id": 3058, + "id": 3184, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 3052, + "id": 3178, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "956:16:20", + "referencedDeclaration": 3175, + "src": "996:16:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 3053, + "id": 3179, "modifierName": { - "argumentTypes": null, - "id": 3051, + "id": 3177, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "942:13:20", + "referencedDeclaration": 3532, + "src": "982:13:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "942:31:20" + "src": "982:31:20" }, { "arguments": [], - "id": 3055, + "id": 3181, "modifierName": { - "argumentTypes": null, - "id": 3054, + "id": 3180, "name": "JudgeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "974:9:20", + "referencedDeclaration": 3416, + "src": "1014:9:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3287_$", + "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3416_$", "typeString": "type(contract JudgeRole)" } }, "nodeType": "ModifierInvocation", - "src": "974:11:20" + "src": "1014:11:20" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3050, + "id": 3176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3049, + "id": 3175, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 3058, - "src": "907:24:20", + "scope": 3184, + "src": "956:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -601,52 +579,50 @@ "typeString": "address" }, "typeName": { - "id": 3048, + "id": 3174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "907:7:20", + "src": "956:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "906:26:20" + "src": "955:26:20" }, "returnParameters": { - "id": 3056, + "id": 3182, "nodeType": "ParameterList", "parameters": [], - "src": "986:0:20" + "src": "1026:0:20" }, - "scope": 3195, - "src": "895:93:20", + "scope": 3326, + "src": "944:84:20", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3374], "body": { - "id": 3069, + "id": 3196, "nodeType": "Block", - "src": "1050:35:20", + "src": "1099:35:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3066, + "id": 3193, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3060, - "src": "1070:7:20", + "referencedDeclaration": 3186, + "src": "1119:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -660,18 +636,18 @@ "typeString": "address" } ], - "id": 3065, + "id": 3192, "name": "_addJudge", "nodeType": "Identifier", - "overloadedDeclarations": [3113], - "referencedDeclaration": 3113, - "src": "1060:9:20", + "overloadedDeclarations": [3241], + "referencedDeclaration": 3241, + "src": "1109:9:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3067, + "id": 3194, "isConstant": false, "isLValue": false, "isPure": false, @@ -679,56 +655,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1060:18:20", + "src": "1109:18:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3068, + "id": 3195, "nodeType": "ExpressionStatement", - "src": "1060:18:20" + "src": "1109:18:20" } ] }, - "documentation": null, - "id": 3070, + "functionSelector": "927cab47", + "id": 3197, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3063, + "id": 3190, "modifierName": { - "argumentTypes": null, - "id": 3062, + "id": 3189, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1036:13:20", + "referencedDeclaration": 3465, + "src": "1085:13:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1036:13:20" + "src": "1085:13:20" } ], "name": "addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3188, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1076:8:20" + }, "parameters": { - "id": 3061, + "id": 3187, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3060, + "id": 3186, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3070, - "src": "1012:15:20", + "scope": 3197, + "src": "1052:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -736,52 +718,49 @@ "typeString": "address" }, "typeName": { - "id": 3059, + "id": 3185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1012:7:20", + "src": "1052:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1011:17:20" + "src": "1051:17:20" }, "returnParameters": { - "id": 3064, + "id": 3191, "nodeType": "ParameterList", "parameters": [], - "src": "1050:0:20" + "src": "1099:0:20" }, - "scope": 3195, - "src": "994:91:20", + "scope": 3326, + "src": "1034:100:20", "stateMutability": "nonpayable", - "superFunction": 3245, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3081, + "id": 3208, "nodeType": "Block", - "src": "1150:38:20", + "src": "1199:38:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3078, + "id": 3205, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3072, - "src": "1173:7:20", + "referencedDeclaration": 3199, + "src": "1222:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -795,18 +774,18 @@ "typeString": "address" } ], - "id": 3077, + "id": 3204, "name": "_removeJudge", "nodeType": "Identifier", - "overloadedDeclarations": [3138], - "referencedDeclaration": 3138, - "src": "1160:12:20", + "overloadedDeclarations": [3267], + "referencedDeclaration": 3267, + "src": "1209:12:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3079, + "id": 3206, "isConstant": false, "isLValue": false, "isPure": false, @@ -814,56 +793,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1160:21:20", + "src": "1209:21:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3080, + "id": 3207, "nodeType": "ExpressionStatement", - "src": "1160:21:20" + "src": "1209:21:20" } ] }, - "documentation": null, - "id": 3082, + "functionSelector": "ae2ac4ae", + "id": 3209, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3075, + "id": 3202, "modifierName": { - "argumentTypes": null, - "id": 3074, + "id": 3201, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1136:13:20", + "referencedDeclaration": 3465, + "src": "1185:13:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1136:13:20" + "src": "1185:13:20" } ], "name": "removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3073, + "id": 3200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3072, + "id": 3199, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "1112:15:20", + "scope": 3209, + "src": "1161:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -871,52 +850,50 @@ "typeString": "address" }, "typeName": { - "id": 3071, + "id": 3198, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1112:7:20", + "src": "1161:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1111:17:20" + "src": "1160:17:20" }, "returnParameters": { - "id": 3076, + "id": 3203, "nodeType": "ParameterList", "parameters": [], - "src": "1150:0:20" + "src": "1199:0:20" }, - "scope": 3195, - "src": "1091:97:20", + "scope": 3326, + "src": "1140:97:20", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3399], "body": { - "id": 3112, + "id": 3240, "nodeType": "Block", - "src": "1239:163:20", + "src": "1305:163:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3090, + "id": 3218, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1265:7:20", + "referencedDeclaration": 3211, + "src": "1331:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -931,33 +908,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3087, + "id": 3215, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1249:5:20", + "referencedDeclaration": 4294967271, + "src": "1315:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3089, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1249:15:20", + "referencedDeclaration": 3399, + "src": "1315:15:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3091, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -965,28 +941,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1249:24:20", + "src": "1315:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3092, + "id": 3220, "nodeType": "ExpressionStatement", - "src": "1249:24:20" + "src": "1315:24:20" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3096, + "id": 3224, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1295:7:20", + "referencedDeclaration": 3211, + "src": "1361:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1001,33 +976,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 3093, + "id": 3221, "name": "judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "1283:6:20", + "referencedDeclaration": 3158, + "src": "1349:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3095, + "id": 3223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1283:11:20", + "src": "1349:11:20", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3097, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -1035,48 +1008,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1283:20:20", + "src": "1349:20:20", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3098, + "id": 3226, "nodeType": "ExpressionStatement", - "src": "1283:20:20" + "src": "1349:20:20" }, { "expression": { - "argumentTypes": null, - "id": 3103, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3099, + "id": 3227, "name": "activeJudges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "1313:12:20", + "referencedDeclaration": 3164, + "src": "1379:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3101, + "id": 3229, "indexExpression": { - "argumentTypes": null, - "id": 3100, + "id": 3228, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1326:7:20", + "referencedDeclaration": 3211, + "src": "1392:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1087,7 +1057,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1313:21:20", + "src": "1379:21:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1096,49 +1066,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 3102, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1337:4:20", - "subdenomination": null, + "src": "1403:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1313:28:20", + "src": "1379:28:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3104, + "id": 3232, "nodeType": "ExpressionStatement", - "src": "1313:28:20" + "src": "1379:28:20" }, { "expression": { - "argumentTypes": null, - "id": 3110, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3105, + "id": 3233, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1351:17:20", + "referencedDeclaration": 3160, + "src": "1417:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1147,20 +1113,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3108, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1393:1:20", - "subdenomination": null, + "src": "1459:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1176,33 +1139,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3106, + "id": 3234, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1371:17:20", + "referencedDeclaration": 3160, + "src": "1437:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3107, + "id": 3235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "1371:21:20", + "referencedDeclaration": 3647, + "src": "1437:21:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3109, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": false, @@ -1210,42 +1172,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1371:24:20", + "src": "1437:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:44:20", + "src": "1417:44:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3111, + "id": 3239, "nodeType": "ExpressionStatement", - "src": "1351:44:20" + "src": "1417:44:20" } ] }, - "documentation": null, - "id": 3113, + "id": 3241, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3213, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1296:8:20" + }, "parameters": { - "id": 3085, + "id": 3212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3084, + "id": 3211, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3113, - "src": "1213:15:20", + "scope": 3241, + "src": "1262:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1253,52 +1222,50 @@ "typeString": "address" }, "typeName": { - "id": 3083, + "id": 3210, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1213:7:20", + "src": "1262:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1212:17:20" + "src": "1261:17:20" }, "returnParameters": { - "id": 3086, + "id": 3214, "nodeType": "ParameterList", "parameters": [], - "src": "1239:0:20" + "src": "1305:0:20" }, - "scope": 3195, - "src": "1194:208:20", + "scope": 3326, + "src": "1243:225:20", "stateMutability": "nonpayable", - "superFunction": 3270, + "virtual": true, "visibility": "internal" }, { + "baseFunctions": [3415], "body": { - "id": 3137, + "id": 3266, "nodeType": "Block", - "src": "1456:137:20", + "src": "1539:137:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3121, + "id": 3250, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "1485:7:20", + "referencedDeclaration": 3243, + "src": "1568:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1313,33 +1280,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3118, + "id": 3247, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1466:5:20", + "referencedDeclaration": 4294967271, + "src": "1549:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3120, + "id": 3249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3286, - "src": "1466:18:20", + "referencedDeclaration": 3415, + "src": "1549:18:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3122, + "id": 3251, "isConstant": false, "isLValue": false, "isPure": false, @@ -1347,48 +1313,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:27:20", + "src": "1549:27:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3123, + "id": 3252, "nodeType": "ExpressionStatement", - "src": "1466:27:20" + "src": "1549:27:20" }, { "expression": { - "argumentTypes": null, - "id": 3128, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3124, + "id": 3253, "name": "activeJudges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "1503:12:20", + "referencedDeclaration": 3164, + "src": "1586:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3126, + "id": 3255, "indexExpression": { - "argumentTypes": null, - "id": 3125, + "id": 3254, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "1516:7:20", + "referencedDeclaration": 3243, + "src": "1599:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1399,7 +1362,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1503:21:20", + "src": "1586:21:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1408,49 +1371,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 3127, + "id": 3256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1527:5:20", - "subdenomination": null, + "src": "1610:5:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1503:29:20", + "src": "1586:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3129, + "id": 3258, "nodeType": "ExpressionStatement", - "src": "1503:29:20" + "src": "1586:29:20" }, { "expression": { - "argumentTypes": null, - "id": 3135, + "id": 3264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3130, + "id": 3259, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1542:17:20", + "referencedDeclaration": 3160, + "src": "1625:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1459,20 +1418,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3133, + "id": 3262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1584:1:20", - "subdenomination": null, + "src": "1667:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1488,33 +1444,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3131, + "id": 3260, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1562:17:20", + "referencedDeclaration": 3160, + "src": "1645:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3132, + "id": 3261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "1562:21:20", + "referencedDeclaration": 3664, + "src": "1645:21:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3134, + "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, @@ -1522,42 +1477,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1562:24:20", + "src": "1645:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1542:44:20", + "src": "1625:44:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3136, + "id": 3265, "nodeType": "ExpressionStatement", - "src": "1542:44:20" + "src": "1625:44:20" } ] }, - "documentation": null, - "id": 3138, + "id": 3267, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3245, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1530:8:20" + }, "parameters": { - "id": 3116, + "id": 3244, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3115, + "id": 3243, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3138, - "src": "1430:15:20", + "scope": 3267, + "src": "1496:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1565,52 +1527,50 @@ "typeString": "address" }, "typeName": { - "id": 3114, + "id": 3242, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1430:7:20", + "src": "1496:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1429:17:20" + "src": "1495:17:20" }, "returnParameters": { - "id": 3117, + "id": 3246, "nodeType": "ParameterList", "parameters": [], - "src": "1456:0:20" + "src": "1539:0:20" }, - "scope": 3195, - "src": "1408:185:20", + "scope": 3326, + "src": "1474:202:20", "stateMutability": "nonpayable", - "superFunction": 3286, + "virtual": true, "visibility": "internal" }, { + "baseFunctions": [3515], "body": { - "id": 3168, + "id": 3298, "nodeType": "Block", - "src": "1648:183:20", + "src": "1740:183:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3146, + "id": 3276, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1678:7:20", + "referencedDeclaration": 3269, + "src": "1770:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1625,33 +1585,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3143, + "id": 3273, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1658:5:20", + "referencedDeclaration": 4294967271, + "src": "1750:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3145, + "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3384, - "src": "1658:19:20", + "referencedDeclaration": 3515, + "src": "1750:19:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3147, + "id": 3277, "isConstant": false, "isLValue": false, "isPure": false, @@ -1659,28 +1618,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:28:20", + "src": "1750:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3148, + "id": 3278, "nodeType": "ExpressionStatement", - "src": "1658:28:20" + "src": "1750:28:20" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3152, + "id": 3282, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1712:7:20", + "referencedDeclaration": 3269, + "src": "1804:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1695,33 +1653,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 3149, + "id": 3279, "name": "organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "1696:10:20", + "referencedDeclaration": 3167, + "src": "1788:10:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3151, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1696:15:20", + "src": "1788:15:20", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3153, + "id": 3283, "isConstant": false, "isLValue": false, "isPure": false, @@ -1729,48 +1685,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1696:24:20", + "src": "1788:24:20", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3154, + "id": 3284, "nodeType": "ExpressionStatement", - "src": "1696:24:20" + "src": "1788:24:20" }, { "expression": { - "argumentTypes": null, - "id": 3159, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3155, + "id": 3285, "name": "activeOrganizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1730:16:20", + "referencedDeclaration": 3173, + "src": "1822:16:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3157, + "id": 3287, "indexExpression": { - "argumentTypes": null, - "id": 3156, + "id": 3286, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1747:7:20", + "referencedDeclaration": 3269, + "src": "1839:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1781,7 +1734,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1730:25:20", + "src": "1822:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1790,49 +1743,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 3158, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1758:4:20", - "subdenomination": null, + "src": "1850:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1730:32:20", + "src": "1822:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3160, + "id": 3290, "nodeType": "ExpressionStatement", - "src": "1730:32:20" + "src": "1822:32:20" }, { "expression": { - "argumentTypes": null, - "id": 3166, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3161, + "id": 3291, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1772:21:20", + "referencedDeclaration": 3169, + "src": "1864:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1841,20 +1790,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3164, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1822:1:20", - "subdenomination": null, + "src": "1914:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -1870,33 +1816,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3162, + "id": 3292, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1796:21:20", + "referencedDeclaration": 3169, + "src": "1888:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3163, + "id": 3293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "1796:25:20", + "referencedDeclaration": 3647, + "src": "1888:25:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3165, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, @@ -1904,42 +1849,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1796:28:20", + "src": "1888:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1772:52:20", + "src": "1864:52:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3167, + "id": 3297, "nodeType": "ExpressionStatement", - "src": "1772:52:20" + "src": "1864:52:20" } ] }, - "documentation": null, - "id": 3169, + "id": 3299, "implemented": true, "kind": "function", "modifiers": [], "name": "_addOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3271, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1731:8:20" + }, "parameters": { - "id": 3141, + "id": 3270, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3140, + "id": 3269, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3169, - "src": "1622:15:20", + "scope": 3299, + "src": "1705:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1947,52 +1899,50 @@ "typeString": "address" }, "typeName": { - "id": 3139, + "id": 3268, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1622:7:20", + "src": "1705:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1621:17:20" + "src": "1704:17:20" }, "returnParameters": { - "id": 3142, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1648:0:20" + "src": "1740:0:20" }, - "scope": 3195, - "src": "1599:232:20", + "scope": 3326, + "src": "1682:241:20", "stateMutability": "nonpayable", - "superFunction": 3384, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3531], "body": { - "id": 3193, + "id": 3324, "nodeType": "Block", - "src": "1889:153:20", + "src": "1990:153:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3177, + "id": 3308, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "1922:7:20", + "referencedDeclaration": 3301, + "src": "2023:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2007,33 +1957,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3174, + "id": 3305, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1899:5:20", + "referencedDeclaration": 4294967271, + "src": "2000:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3176, + "id": 3307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3400, - "src": "1899:22:20", + "referencedDeclaration": 3531, + "src": "2000:22:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3178, + "id": 3309, "isConstant": false, "isLValue": false, "isPure": false, @@ -2041,48 +1990,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1899:31:20", + "src": "2000:31:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3179, + "id": 3310, "nodeType": "ExpressionStatement", - "src": "1899:31:20" + "src": "2000:31:20" }, { "expression": { - "argumentTypes": null, - "id": 3184, + "id": 3315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3180, + "id": 3311, "name": "activeOrganizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1940:16:20", + "referencedDeclaration": 3173, + "src": "2041:16:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3182, + "id": 3313, "indexExpression": { - "argumentTypes": null, - "id": 3181, + "id": 3312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "1957:7:20", + "referencedDeclaration": 3301, + "src": "2058:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2093,7 +2039,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1940:25:20", + "src": "2041:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2102,49 +2048,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 3183, + "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1968:5:20", - "subdenomination": null, + "src": "2069:5:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1940:33:20", + "src": "2041:33:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3185, + "id": 3316, "nodeType": "ExpressionStatement", - "src": "1940:33:20" + "src": "2041:33:20" }, { "expression": { - "argumentTypes": null, - "id": 3191, + "id": 3322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3186, + "id": 3317, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1983:21:20", + "referencedDeclaration": 3169, + "src": "2084:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2153,20 +2095,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3189, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2033:1:20", - "subdenomination": null, + "src": "2134:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -2182,33 +2121,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3187, + "id": 3318, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2007:21:20", + "referencedDeclaration": 3169, + "src": "2108:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3188, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "2007:25:20", + "referencedDeclaration": 3664, + "src": "2108:25:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3190, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": false, @@ -2216,42 +2154,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2007:28:20", + "src": "2108:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1983:52:20", + "src": "2084:52:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3192, + "id": 3323, "nodeType": "ExpressionStatement", - "src": "1983:52:20" + "src": "2084:52:20" } ] }, - "documentation": null, - "id": 3194, + "id": 3325, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3303, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1981:8:20" + }, "parameters": { - "id": 3172, + "id": 3302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3171, + "id": 3301, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "1863:15:20", + "scope": 3325, + "src": "1955:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2259,157 +2204,162 @@ "typeString": "address" }, "typeName": { - "id": 3170, + "id": 3300, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1863:7:20", + "src": "1955:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1862:17:20" + "src": "1954:17:20" }, "returnParameters": { - "id": 3173, + "id": 3304, "nodeType": "ParameterList", "parameters": [], - "src": "1889:0:20" + "src": "1990:0:20" }, - "scope": 3195, - "src": "1837:205:20", + "scope": 3326, + "src": "1929:214:20", "stateMutability": "nonpayable", - "superFunction": 3400, + "virtual": false, "visibility": "internal" } ], - "scope": 3196, - "src": "315:1729:20" + "scope": 3327, + "src": "355:1790:20" } ], - "src": "0:2045:20" + "src": "40:2106:20" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol", "exportedSymbols": { - "ContestRoleManager": [3195] + "ContestRoleManager": [3326], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 3196, + "id": 3327, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3019, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3144, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:20" + "src": "40:31:20" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 3020, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 3145, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 4216, - "src": "25:59:20", + "scope": 3327, + "sourceUnit": 3815, + "src": "73:51:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 3021, + "id": 3146, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 3402, - "src": "85:36:20", + "scope": 3327, + "sourceUnit": 3533, + "src": "125:36:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "file": "../roles/JudgeRole.sol", - "id": 3022, + "id": 3147, "nodeType": "ImportDirective", - "scope": 3196, - "sourceUnit": 3288, - "src": "122:32:20", + "scope": 3327, + "sourceUnit": 3417, + "src": "162:32:20", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 3023, + "id": 3149, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "346:13:20", + "referencedDeclaration": 3532, + "src": "395:13:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 3024, + "id": 3150, "nodeType": "InheritanceSpecifier", - "src": "346:13:20" + "src": "395:13:20" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 3025, + "id": 3151, "name": "JudgeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3287, - "src": "361:9:20", + "referencedDeclaration": 3416, + "src": "410:9:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_JudgeRole_$3287", + "typeIdentifier": "t_contract$_JudgeRole_$3416", "typeString": "contract JudgeRole" } }, - "id": 3026, + "id": 3152, "nodeType": "InheritanceSpecifier", - "src": "361:9:20" + "src": "410:9:20" } ], - "contractDependencies": [3287, 3401], + "contractDependencies": [3416, 3532], "contractKind": "contract", - "documentation": "@notice Extends the roles OrganizerRole and JudgeRole and adds access control\nto public methods, plus controls judges and organizers accounts.", + "documentation": { + "id": 3148, + "nodeType": "StructuredDocumentation", + "src": "196:158:20", + "text": "@notice Extends the roles OrganizerRole and JudgeRole and adds access control\nto public methods, plus controls judges and organizers accounts." + }, "fullyImplemented": true, - "id": 3195, - "linearizedBaseContracts": [3195, 3287, 3401], + "id": 3326, + "linearizedBaseContracts": [3326, 3416, 3532], "name": "ContestRoleManager", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3029, + "id": 3155, "libraryName": { - "contractScope": null, - "id": 3027, + "id": 3153, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "383:8:20", + "referencedDeclaration": 3814, + "src": "432:8:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "377:27:20", + "src": "426:27:20", "typeName": { - "id": 3028, + "id": 3154, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "396:7:20", + "src": "445:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2418,11 +2368,12 @@ }, { "constant": false, - "id": 3032, + "id": 3158, + "mutability": "mutable", "name": "judges", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "433:25:20", + "scope": 3326, + "src": "482:25:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2431,35 +2382,34 @@ }, "typeName": { "baseType": { - "id": 3030, + "id": 3156, "name": "address", "nodeType": "ElementaryTypeName", - "src": "433:7:20", + "src": "482:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3031, - "length": null, + "id": 3157, "nodeType": "ArrayTypeName", - "src": "433:9:20", + "src": "482:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3034, + "id": 3160, + "mutability": "mutable", "name": "activeJudgesCount", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "482:34:20", + "scope": 3326, + "src": "531:34:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2467,25 +2417,25 @@ "typeString": "uint256" }, "typeName": { - "id": 3033, + "id": 3159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "482:7:20", + "src": "531:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3038, + "id": 3164, + "mutability": "mutable", "name": "activeJudges", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "554:46:20", + "scope": 3326, + "src": "603:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2493,44 +2443,44 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3037, + "id": 3163, "keyType": { - "id": 3035, + "id": 3161, "name": "address", "nodeType": "ElementaryTypeName", - "src": "562:7:20", + "src": "611:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "554:24:20", + "src": "603:24:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3036, + "id": 3162, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "573:4:20", + "src": "622:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3041, + "id": 3167, + "mutability": "mutable", "name": "organizers", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "665:29:20", + "scope": 3326, + "src": "714:29:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2539,35 +2489,34 @@ }, "typeName": { "baseType": { - "id": 3039, + "id": 3165, "name": "address", "nodeType": "ElementaryTypeName", - "src": "665:7:20", + "src": "714:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 3040, - "length": null, + "id": 3166, "nodeType": "ArrayTypeName", - "src": "665:9:20", + "src": "714:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3043, + "id": 3169, + "mutability": "mutable", "name": "activeOrganizersCount", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "722:38:20", + "scope": 3326, + "src": "771:38:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2575,25 +2524,25 @@ "typeString": "uint256" }, "typeName": { - "id": 3042, + "id": 3168, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "722:7:20", + "src": "771:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 3047, + "id": 3173, + "mutability": "mutable", "name": "activeOrganizers", "nodeType": "VariableDeclaration", - "scope": 3195, - "src": "802:50:20", + "scope": 3326, + "src": "851:50:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2601,115 +2550,111 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 3046, + "id": 3172, "keyType": { - "id": 3044, + "id": 3170, "name": "address", "nodeType": "ElementaryTypeName", - "src": "810:7:20", + "src": "859:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "802:24:20", + "src": "851:24:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 3045, + "id": 3171, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "821:4:20", + "src": "870:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "body": { - "id": 3057, + "id": 3183, "nodeType": "Block", - "src": "986:2:20", + "src": "1026:2:20", "statements": [] }, - "documentation": null, - "id": 3058, + "id": 3184, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 3052, + "id": 3178, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "956:16:20", + "referencedDeclaration": 3175, + "src": "996:16:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 3053, + "id": 3179, "modifierName": { - "argumentTypes": null, - "id": 3051, + "id": 3177, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "942:13:20", + "referencedDeclaration": 3532, + "src": "982:13:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "942:31:20" + "src": "982:31:20" }, { "arguments": [], - "id": 3055, + "id": 3181, "modifierName": { - "argumentTypes": null, - "id": 3054, + "id": 3180, "name": "JudgeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "974:9:20", + "referencedDeclaration": 3416, + "src": "1014:9:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3287_$", + "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3416_$", "typeString": "type(contract JudgeRole)" } }, "nodeType": "ModifierInvocation", - "src": "974:11:20" + "src": "1014:11:20" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3050, + "id": 3176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3049, + "id": 3175, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 3058, - "src": "907:24:20", + "scope": 3184, + "src": "956:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2717,52 +2662,50 @@ "typeString": "address" }, "typeName": { - "id": 3048, + "id": 3174, "name": "address", "nodeType": "ElementaryTypeName", - "src": "907:7:20", + "src": "956:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "906:26:20" + "src": "955:26:20" }, "returnParameters": { - "id": 3056, + "id": 3182, "nodeType": "ParameterList", "parameters": [], - "src": "986:0:20" + "src": "1026:0:20" }, - "scope": 3195, - "src": "895:93:20", + "scope": 3326, + "src": "944:84:20", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3374], "body": { - "id": 3069, + "id": 3196, "nodeType": "Block", - "src": "1050:35:20", + "src": "1099:35:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3066, + "id": 3193, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3060, - "src": "1070:7:20", + "referencedDeclaration": 3186, + "src": "1119:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2776,18 +2719,18 @@ "typeString": "address" } ], - "id": 3065, + "id": 3192, "name": "_addJudge", "nodeType": "Identifier", - "overloadedDeclarations": [3113], - "referencedDeclaration": 3113, - "src": "1060:9:20", + "overloadedDeclarations": [3241], + "referencedDeclaration": 3241, + "src": "1109:9:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3067, + "id": 3194, "isConstant": false, "isLValue": false, "isPure": false, @@ -2795,56 +2738,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1060:18:20", + "src": "1109:18:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3068, + "id": 3195, "nodeType": "ExpressionStatement", - "src": "1060:18:20" + "src": "1109:18:20" } ] }, - "documentation": null, - "id": 3070, + "functionSelector": "927cab47", + "id": 3197, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3063, + "id": 3190, "modifierName": { - "argumentTypes": null, - "id": 3062, + "id": 3189, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1036:13:20", + "referencedDeclaration": 3465, + "src": "1085:13:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1036:13:20" + "src": "1085:13:20" } ], "name": "addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3188, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1076:8:20" + }, "parameters": { - "id": 3061, + "id": 3187, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3060, + "id": 3186, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3070, - "src": "1012:15:20", + "scope": 3197, + "src": "1052:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2852,52 +2801,49 @@ "typeString": "address" }, "typeName": { - "id": 3059, + "id": 3185, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1012:7:20", + "src": "1052:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1011:17:20" + "src": "1051:17:20" }, "returnParameters": { - "id": 3064, + "id": 3191, "nodeType": "ParameterList", "parameters": [], - "src": "1050:0:20" + "src": "1099:0:20" }, - "scope": 3195, - "src": "994:91:20", + "scope": 3326, + "src": "1034:100:20", "stateMutability": "nonpayable", - "superFunction": 3245, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3081, + "id": 3208, "nodeType": "Block", - "src": "1150:38:20", + "src": "1199:38:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3078, + "id": 3205, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3072, - "src": "1173:7:20", + "referencedDeclaration": 3199, + "src": "1222:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2911,18 +2857,18 @@ "typeString": "address" } ], - "id": 3077, + "id": 3204, "name": "_removeJudge", "nodeType": "Identifier", - "overloadedDeclarations": [3138], - "referencedDeclaration": 3138, - "src": "1160:12:20", + "overloadedDeclarations": [3267], + "referencedDeclaration": 3267, + "src": "1209:12:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3079, + "id": 3206, "isConstant": false, "isLValue": false, "isPure": false, @@ -2930,56 +2876,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1160:21:20", + "src": "1209:21:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3080, + "id": 3207, "nodeType": "ExpressionStatement", - "src": "1160:21:20" + "src": "1209:21:20" } ] }, - "documentation": null, - "id": 3082, + "functionSelector": "ae2ac4ae", + "id": 3209, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3075, + "id": 3202, "modifierName": { - "argumentTypes": null, - "id": 3074, + "id": 3201, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1136:13:20", + "referencedDeclaration": 3465, + "src": "1185:13:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1136:13:20" + "src": "1185:13:20" } ], "name": "removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3073, + "id": 3200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3072, + "id": 3199, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3082, - "src": "1112:15:20", + "scope": 3209, + "src": "1161:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2987,52 +2933,50 @@ "typeString": "address" }, "typeName": { - "id": 3071, + "id": 3198, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1112:7:20", + "src": "1161:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1111:17:20" + "src": "1160:17:20" }, "returnParameters": { - "id": 3076, + "id": 3203, "nodeType": "ParameterList", "parameters": [], - "src": "1150:0:20" + "src": "1199:0:20" }, - "scope": 3195, - "src": "1091:97:20", + "scope": 3326, + "src": "1140:97:20", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3399], "body": { - "id": 3112, + "id": 3240, "nodeType": "Block", - "src": "1239:163:20", + "src": "1305:163:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3090, + "id": 3218, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1265:7:20", + "referencedDeclaration": 3211, + "src": "1331:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3047,33 +2991,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3087, + "id": 3215, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1249:5:20", + "referencedDeclaration": 4294967271, + "src": "1315:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3089, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1249:15:20", + "referencedDeclaration": 3399, + "src": "1315:15:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3091, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -3081,28 +3024,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1249:24:20", + "src": "1315:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3092, + "id": 3220, "nodeType": "ExpressionStatement", - "src": "1249:24:20" + "src": "1315:24:20" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3096, + "id": 3224, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1295:7:20", + "referencedDeclaration": 3211, + "src": "1361:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3117,33 +3059,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 3093, + "id": 3221, "name": "judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "1283:6:20", + "referencedDeclaration": 3158, + "src": "1349:6:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3095, + "id": 3223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1283:11:20", + "src": "1349:11:20", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3097, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -3151,48 +3091,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1283:20:20", + "src": "1349:20:20", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3098, + "id": 3226, "nodeType": "ExpressionStatement", - "src": "1283:20:20" + "src": "1349:20:20" }, { "expression": { - "argumentTypes": null, - "id": 3103, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3099, + "id": 3227, "name": "activeJudges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "1313:12:20", + "referencedDeclaration": 3164, + "src": "1379:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3101, + "id": 3229, "indexExpression": { - "argumentTypes": null, - "id": 3100, + "id": 3228, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3084, - "src": "1326:7:20", + "referencedDeclaration": 3211, + "src": "1392:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3203,7 +3140,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1313:21:20", + "src": "1379:21:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3212,49 +3149,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 3102, + "id": 3230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1337:4:20", - "subdenomination": null, + "src": "1403:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1313:28:20", + "src": "1379:28:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3104, + "id": 3232, "nodeType": "ExpressionStatement", - "src": "1313:28:20" + "src": "1379:28:20" }, { "expression": { - "argumentTypes": null, - "id": 3110, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3105, + "id": 3233, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1351:17:20", + "referencedDeclaration": 3160, + "src": "1417:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3263,20 +3196,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3108, + "id": 3236, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1393:1:20", - "subdenomination": null, + "src": "1459:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -3292,33 +3222,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3106, + "id": 3234, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1371:17:20", + "referencedDeclaration": 3160, + "src": "1437:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3107, + "id": 3235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "1371:21:20", + "referencedDeclaration": 3647, + "src": "1437:21:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3109, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": false, @@ -3326,42 +3255,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1371:24:20", + "src": "1437:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1351:44:20", + "src": "1417:44:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3111, + "id": 3239, "nodeType": "ExpressionStatement", - "src": "1351:44:20" + "src": "1417:44:20" } ] }, - "documentation": null, - "id": 3113, + "id": 3241, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3213, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1296:8:20" + }, "parameters": { - "id": 3085, + "id": 3212, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3084, + "id": 3211, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3113, - "src": "1213:15:20", + "scope": 3241, + "src": "1262:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3369,52 +3305,50 @@ "typeString": "address" }, "typeName": { - "id": 3083, + "id": 3210, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1213:7:20", + "src": "1262:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1212:17:20" + "src": "1261:17:20" }, "returnParameters": { - "id": 3086, + "id": 3214, "nodeType": "ParameterList", "parameters": [], - "src": "1239:0:20" + "src": "1305:0:20" }, - "scope": 3195, - "src": "1194:208:20", + "scope": 3326, + "src": "1243:225:20", "stateMutability": "nonpayable", - "superFunction": 3270, + "virtual": true, "visibility": "internal" }, { + "baseFunctions": [3415], "body": { - "id": 3137, + "id": 3266, "nodeType": "Block", - "src": "1456:137:20", + "src": "1539:137:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3121, + "id": 3250, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "1485:7:20", + "referencedDeclaration": 3243, + "src": "1568:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3429,33 +3363,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3118, + "id": 3247, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1466:5:20", + "referencedDeclaration": 4294967271, + "src": "1549:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3120, + "id": 3249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3286, - "src": "1466:18:20", + "referencedDeclaration": 3415, + "src": "1549:18:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3122, + "id": 3251, "isConstant": false, "isLValue": false, "isPure": false, @@ -3463,48 +3396,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1466:27:20", + "src": "1549:27:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3123, + "id": 3252, "nodeType": "ExpressionStatement", - "src": "1466:27:20" + "src": "1549:27:20" }, { "expression": { - "argumentTypes": null, - "id": 3128, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3124, + "id": 3253, "name": "activeJudges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "1503:12:20", + "referencedDeclaration": 3164, + "src": "1586:12:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3126, + "id": 3255, "indexExpression": { - "argumentTypes": null, - "id": 3125, + "id": 3254, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "1516:7:20", + "referencedDeclaration": 3243, + "src": "1599:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3515,7 +3445,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1503:21:20", + "src": "1586:21:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3524,49 +3454,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 3127, + "id": 3256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1527:5:20", - "subdenomination": null, + "src": "1610:5:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1503:29:20", + "src": "1586:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3129, + "id": 3258, "nodeType": "ExpressionStatement", - "src": "1503:29:20" + "src": "1586:29:20" }, { "expression": { - "argumentTypes": null, - "id": 3135, + "id": 3264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3130, + "id": 3259, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1542:17:20", + "referencedDeclaration": 3160, + "src": "1625:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3575,20 +3501,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3133, + "id": 3262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1584:1:20", - "subdenomination": null, + "src": "1667:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -3604,33 +3527,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3131, + "id": 3260, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "1562:17:20", + "referencedDeclaration": 3160, + "src": "1645:17:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3132, + "id": 3261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "1562:21:20", + "referencedDeclaration": 3664, + "src": "1645:21:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3134, + "id": 3263, "isConstant": false, "isLValue": false, "isPure": false, @@ -3638,42 +3560,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1562:24:20", + "src": "1645:24:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1542:44:20", + "src": "1625:44:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3136, + "id": 3265, "nodeType": "ExpressionStatement", - "src": "1542:44:20" + "src": "1625:44:20" } ] }, - "documentation": null, - "id": 3138, + "id": 3267, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3245, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1530:8:20" + }, "parameters": { - "id": 3116, + "id": 3244, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3115, + "id": 3243, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3138, - "src": "1430:15:20", + "scope": 3267, + "src": "1496:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3681,52 +3610,50 @@ "typeString": "address" }, "typeName": { - "id": 3114, + "id": 3242, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1430:7:20", + "src": "1496:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1429:17:20" + "src": "1495:17:20" }, "returnParameters": { - "id": 3117, + "id": 3246, "nodeType": "ParameterList", "parameters": [], - "src": "1456:0:20" + "src": "1539:0:20" }, - "scope": 3195, - "src": "1408:185:20", + "scope": 3326, + "src": "1474:202:20", "stateMutability": "nonpayable", - "superFunction": 3286, + "virtual": true, "visibility": "internal" }, { + "baseFunctions": [3515], "body": { - "id": 3168, + "id": 3298, "nodeType": "Block", - "src": "1648:183:20", + "src": "1740:183:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3146, + "id": 3276, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1678:7:20", + "referencedDeclaration": 3269, + "src": "1770:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3741,33 +3668,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3143, + "id": 3273, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1658:5:20", + "referencedDeclaration": 4294967271, + "src": "1750:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3145, + "id": 3275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3384, - "src": "1658:19:20", + "referencedDeclaration": 3515, + "src": "1750:19:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3147, + "id": 3277, "isConstant": false, "isLValue": false, "isPure": false, @@ -3775,28 +3701,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:28:20", + "src": "1750:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3148, + "id": 3278, "nodeType": "ExpressionStatement", - "src": "1658:28:20" + "src": "1750:28:20" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3152, + "id": 3282, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1712:7:20", + "referencedDeclaration": 3269, + "src": "1804:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3811,33 +3736,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 3149, + "id": 3279, "name": "organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3041, - "src": "1696:10:20", + "referencedDeclaration": 3167, + "src": "1788:10:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 3151, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1696:15:20", + "src": "1788:15:20", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3153, + "id": 3283, "isConstant": false, "isLValue": false, "isPure": false, @@ -3845,48 +3768,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1696:24:20", + "src": "1788:24:20", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3154, + "id": 3284, "nodeType": "ExpressionStatement", - "src": "1696:24:20" + "src": "1788:24:20" }, { "expression": { - "argumentTypes": null, - "id": 3159, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3155, + "id": 3285, "name": "activeOrganizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1730:16:20", + "referencedDeclaration": 3173, + "src": "1822:16:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3157, + "id": 3287, "indexExpression": { - "argumentTypes": null, - "id": 3156, + "id": 3286, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3140, - "src": "1747:7:20", + "referencedDeclaration": 3269, + "src": "1839:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3897,7 +3817,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1730:25:20", + "src": "1822:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3906,49 +3826,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 3158, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1758:4:20", - "subdenomination": null, + "src": "1850:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "1730:32:20", + "src": "1822:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3160, + "id": 3290, "nodeType": "ExpressionStatement", - "src": "1730:32:20" + "src": "1822:32:20" }, { "expression": { - "argumentTypes": null, - "id": 3166, + "id": 3296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3161, + "id": 3291, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1772:21:20", + "referencedDeclaration": 3169, + "src": "1864:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3957,20 +3873,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3164, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1822:1:20", - "subdenomination": null, + "src": "1914:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -3986,33 +3899,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3162, + "id": 3292, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1796:21:20", + "referencedDeclaration": 3169, + "src": "1888:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3163, + "id": 3293, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "1796:25:20", + "referencedDeclaration": 3647, + "src": "1888:25:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3165, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, @@ -4020,42 +3932,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1796:28:20", + "src": "1888:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1772:52:20", + "src": "1864:52:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3167, + "id": 3297, "nodeType": "ExpressionStatement", - "src": "1772:52:20" + "src": "1864:52:20" } ] }, - "documentation": null, - "id": 3169, + "id": 3299, "implemented": true, "kind": "function", "modifiers": [], "name": "_addOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3271, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1731:8:20" + }, "parameters": { - "id": 3141, + "id": 3270, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3140, + "id": 3269, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3169, - "src": "1622:15:20", + "scope": 3299, + "src": "1705:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4063,52 +3982,50 @@ "typeString": "address" }, "typeName": { - "id": 3139, + "id": 3268, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1622:7:20", + "src": "1705:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1621:17:20" + "src": "1704:17:20" }, "returnParameters": { - "id": 3142, + "id": 3272, "nodeType": "ParameterList", "parameters": [], - "src": "1648:0:20" + "src": "1740:0:20" }, - "scope": 3195, - "src": "1599:232:20", + "scope": 3326, + "src": "1682:241:20", "stateMutability": "nonpayable", - "superFunction": 3384, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3531], "body": { - "id": 3193, + "id": 3324, "nodeType": "Block", - "src": "1889:153:20", + "src": "1990:153:20", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3177, + "id": 3308, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "1922:7:20", + "referencedDeclaration": 3301, + "src": "2023:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4123,33 +4040,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3174, + "id": 3305, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4257, - "src": "1899:5:20", + "referencedDeclaration": 4294967271, + "src": "2000:5:20", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestRoleManager_$3195", + "typeIdentifier": "t_super$_ContestRoleManager_$3326", "typeString": "contract super ContestRoleManager" } }, - "id": 3176, + "id": 3307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3400, - "src": "1899:22:20", + "referencedDeclaration": 3531, + "src": "2000:22:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3178, + "id": 3309, "isConstant": false, "isLValue": false, "isPure": false, @@ -4157,48 +4073,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1899:31:20", + "src": "2000:31:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3179, + "id": 3310, "nodeType": "ExpressionStatement", - "src": "1899:31:20" + "src": "2000:31:20" }, { "expression": { - "argumentTypes": null, - "id": 3184, + "id": 3315, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 3180, + "id": 3311, "name": "activeOrganizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3047, - "src": "1940:16:20", + "referencedDeclaration": 3173, + "src": "2041:16:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 3182, + "id": 3313, "indexExpression": { - "argumentTypes": null, - "id": 3181, + "id": 3312, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "1957:7:20", + "referencedDeclaration": 3301, + "src": "2058:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4209,7 +4122,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1940:25:20", + "src": "2041:25:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4218,49 +4131,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 3183, + "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1968:5:20", - "subdenomination": null, + "src": "2069:5:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1940:33:20", + "src": "2041:33:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3185, + "id": 3316, "nodeType": "ExpressionStatement", - "src": "1940:33:20" + "src": "2041:33:20" }, { "expression": { - "argumentTypes": null, - "id": 3191, + "id": 3322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 3186, + "id": 3317, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "1983:21:20", + "referencedDeclaration": 3169, + "src": "2084:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4269,20 +4178,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 3189, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2033:1:20", - "subdenomination": null, + "src": "2134:1:20", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -4298,33 +4204,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3187, + "id": 3318, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2007:21:20", + "referencedDeclaration": 3169, + "src": "2108:21:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3188, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "2007:25:20", + "referencedDeclaration": 3664, + "src": "2108:25:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3190, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": false, @@ -4332,42 +4237,49 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2007:28:20", + "src": "2108:28:20", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1983:52:20", + "src": "2084:52:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3192, + "id": 3323, "nodeType": "ExpressionStatement", - "src": "1983:52:20" + "src": "2084:52:20" } ] }, - "documentation": null, - "id": 3194, + "id": 3325, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3303, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "1981:8:20" + }, "parameters": { - "id": 3172, + "id": 3302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3171, + "id": 3301, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3194, - "src": "1863:15:20", + "scope": 3325, + "src": "1955:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4375,53 +4287,60 @@ "typeString": "address" }, "typeName": { - "id": 3170, + "id": 3300, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1863:7:20", + "src": "1955:7:20", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1862:17:20" + "src": "1954:17:20" }, "returnParameters": { - "id": 3173, + "id": 3304, "nodeType": "ParameterList", "parameters": [], - "src": "1889:0:20" + "src": "1990:0:20" }, - "scope": 3195, - "src": "1837:205:20", + "scope": 3326, + "src": "1929:214:20", "stateMutability": "nonpayable", - "superFunction": 3400, + "virtual": false, "visibility": "internal" } ], - "scope": 3196, - "src": "315:1729:20" + "scope": 3327, + "src": "355:1790:20" } ], - "src": "0:2045:20" + "src": "40:2106:20" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.526Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.127Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {}, - "notice": "Extends the roles OrganizerRole and JudgeRole and adds access control to public methods, plus controls judges and organizers accounts." + "kind": "user", + "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + } + }, + "notice": "Extends the roles OrganizerRole and JudgeRole and adds access control to public methods, plus controls judges and organizers accounts.", + "version": 1 } } diff --git a/build/contracts/ContestRoleManagerMock.json b/build/contracts/ContestRoleManagerMock.json index 15e7b88..55bf1ee 100644 --- a/build/contracts/ContestRoleManagerMock.json +++ b/build/contracts/ContestRoleManagerMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -60,7 +59,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -70,12 +68,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -85,12 +81,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -106,12 +100,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -127,12 +119,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -142,30 +132,24 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveOrganizersCount", "outputs": [ @@ -175,12 +159,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveJudgesCount", "outputs": [ @@ -190,206 +172,207 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveJudgesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveOrganizersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol\":\"ContestRoleManagerMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol\":{\"keccak256\":\"0x99a33a9281fff7c0344b01f7a46b0c9fb674596f38de7e05db73e81db3577ec2\",\"urls\":[\"bzz-raw://5b6233d8ff45d3f232e3617ba994b117353cb21bdca7bf9fd09c3169fbd2f93d\",\"dweb:/ipfs/QmTXFnXmof9B5RYW3ufAEXC9jyS96nhpY2Edo2YfrAUiqs\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b5033808061007f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b610091816001600160e01b0361009816565b505061031b565b6100ab8161012c60201b6106441760201c565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760209081526040909120805460ff19168317905560065461012692909161017b811b6105e317901c565b60065550565b6101448160006101f660201b6106f31790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156101ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61020982826001600160e01b0361029a16565b1561027557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166102fb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610b496022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61081f8061032a6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063927cab4711610066578063927cab47146100fe578063ae2ac4ae14610124578063ce46e79d1461014a578063e4725f0214610152578063ed896d661461017857610093565b806341676f15146100985780634b30b66f146100d2578063567ad862146100dc578063820429ba146100e4575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b031661019e565b604080519115158252519081900360200190f35b6100da6101b6565b005b6100da6101c1565b6100ec6101ca565b60408051918252519081900360200190f35b6100da6004803603602081101561011457600080fd5b50356001600160a01b03166101d0565b6100da6004803603602081101561013a57600080fd5b50356001600160a01b0316610220565b6100ec61026d565b6100da6004803603602081101561016857600080fd5b50356001600160a01b0316610273565b6100be6004803603602081101561018e57600080fd5b50356001600160a01b03166102c0565b60006101b0818363ffffffff6102d316565b92915050565b6101bf3361033a565b565b6101bf3361037d565b60035490565b6101d93361019e565b6102145760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d816103c0565b50565b6102293361019e565b6102645760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d8161033a565b60065490565b61027c3361019e565b6102b75760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d81610437565b60006101b060018363ffffffff6102d316565b60006001600160a01b03821661031a5760405162461bcd60e51b81526004018080602001828103825260228152602001806107c96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610343816104ae565b6001600160a01b0381166000908152600460205260409020805460ff1916905560035461037790600163ffffffff6104f616565b60035550565b61038681610553565b6001600160a01b0381166000908152600760205260409020805460ff191690556006546103ba90600163ffffffff6104f616565b60065550565b6103c98161059b565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610377916105e3565b61044081610644565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760205260409020805460ff1916821790556006546103ba916105e3565b6104bf60018263ffffffff61068c16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b60008282111561054d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b61056460008263ffffffff61068c16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6105ac60018263ffffffff6106f316565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b60008282018381101561063d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61065560008263ffffffff6106f316565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61069682826102d3565b6106d15760405162461bcd60e51b81526004018080602001828103825260218152602001806107a86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6106fd82826102d3565b1561074f576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158200cc93637498acfef5def8e78d1ad067ebdf03e65d409a0130142d764bba47a8264736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063927cab4711610066578063927cab47146100fe578063ae2ac4ae14610124578063ce46e79d1461014a578063e4725f0214610152578063ed896d661461017857610093565b806341676f15146100985780634b30b66f146100d2578063567ad862146100dc578063820429ba146100e4575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b031661019e565b604080519115158252519081900360200190f35b6100da6101b6565b005b6100da6101c1565b6100ec6101ca565b60408051918252519081900360200190f35b6100da6004803603602081101561011457600080fd5b50356001600160a01b03166101d0565b6100da6004803603602081101561013a57600080fd5b50356001600160a01b0316610220565b6100ec61026d565b6100da6004803603602081101561016857600080fd5b50356001600160a01b0316610273565b6100be6004803603602081101561018e57600080fd5b50356001600160a01b03166102c0565b60006101b0818363ffffffff6102d316565b92915050565b6101bf3361033a565b565b6101bf3361037d565b60035490565b6101d93361019e565b6102145760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d816103c0565b50565b6102293361019e565b6102645760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d8161033a565b60065490565b61027c3361019e565b6102b75760405162461bcd60e51b81526004018080602001828103825260338152602001806107756033913960400191505060405180910390fd5b61021d81610437565b60006101b060018363ffffffff6102d316565b60006001600160a01b03821661031a5760405162461bcd60e51b81526004018080602001828103825260228152602001806107c96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610343816104ae565b6001600160a01b0381166000908152600460205260409020805460ff1916905560035461037790600163ffffffff6104f616565b60035550565b61038681610553565b6001600160a01b0381166000908152600760205260409020805460ff191690556006546103ba90600163ffffffff6104f616565b60065550565b6103c98161059b565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610377916105e3565b61044081610644565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760205260409020805460ff1916821790556006546103ba916105e3565b6104bf60018263ffffffff61068c16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b60008282111561054d576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b61056460008263ffffffff61068c16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6105ac60018263ffffffff6106f316565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b60008282018381101561063d576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61065560008263ffffffff6106f316565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61069682826102d3565b6106d15760405162461bcd60e51b81526004018080602001828103825260218152602001806107a86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6106fd82826102d3565b1561074f576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158200cc93637498acfef5def8e78d1ad067ebdf03e65d409a0130142d764bba47a8264736f6c634300050c0032", - "sourceMap": "68:343:10:-;;;128:54;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;168:10:10;;1889:30:22;1881:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:31;1968:16;-1:-1:-1;;;;;1954:13:22;:31;:::i;:::-;1824:168;895:93:20;68:343:10;;1599:232:20;1658:28;1678:7;1658:19;;;;;:28;;:::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1772:21;:52;-1:-1:-1;1599:232:20:o;2455:128:22:-;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;68:343:10:-;;;;;;;", - "deployedSourceMap": "68:343:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;68:343:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:113:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;2240:73:21;;;:::i;:::-;;2368:81:22;;;:::i;305:103:10:-;;;:::i;:::-;;;;;;;;;;;;;;;;994:91:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;994:91:20;-1:-1:-1;;;;;994:91:20;;:::i;1091:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1091:97:20;-1:-1:-1;;;;;1091:97:20;;:::i;188:111:10:-;;;:::i;2263:99:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;2003:105:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2003:105:21;-1:-1:-1;;;;;2003:105:21;;:::i;2144:113:22:-;2203:4;2226:24;2203:4;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;2144:113;-1:-1:-1;;2144:113:22:o;2240:73:21:-;2282:24;2295:10;2282:12;:24::i;:::-;2240:73::o;2368:81:22:-;2414:28;2431:10;2414:16;:28::i;305:103:10:-;384:17;;305:103;:::o;994:91:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:18:20;1070:7;1060:9;:18::i;:::-;994:91;:::o;1091:97::-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:21:20;1173:7;1160:12;:21::i;188:111:10:-;271:21;;188:111;:::o;2263:99:22:-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;2003:105:21:-;2058:4;2081:20;:7;2093;2081:20;:11;:20;:::i;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1408:185:20:-;1466:27;1485:7;1466:18;:27::i;:::-;-1:-1:-1;;;;;1503:21:20;;1527:5;1503:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1503:29:20;;;1562:17;;:24;;1503:29;1562:24;:21;:24;:::i;:::-;1542:17;:44;-1:-1:-1;1408:185:20:o;1837:205::-;1899:31;1922:7;1899:22;:31::i;:::-;-1:-1:-1;;;;;1940:25:20;;1968:5;1940:25;;;:16;:25;;;;;:33;;-1:-1:-1;;1940:33:20;;;2007:21;;:28;;1940:33;2007:28;:25;:28;:::i;:::-;1983:21;:52;-1:-1:-1;1837:205:20:o;1194:208::-;1249:24;1265:7;1249:15;:24::i;:::-;1283:6;27:10:-1;;39:1;23:18;;;45:23;;;1283:20:20;;;;-1:-1:-1;;;;;;1283:20:20;-1:-1:-1;;;;;1283:20:20;;;;;;;;-1:-1:-1;1313:21:20;;;:12;1283:20;1313:21;;;;:28;;-1:-1:-1;;1313:28:20;;;;;1371:17;;:24;;:21;:24::i;1599:232::-;1658:28;1678:7;1658:19;:28::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:25;:28::i;2441:124:21:-;2499:23;:7;2514;2499:23;:14;:23;:::i;:::-;2537:21;;-1:-1:-1;;;;;2537:21:21;;;;;;;;2441:124;:::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;2589:136:22:-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;2319:116:21:-;2374:20;:7;2386;2374:20;:11;:20;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../roles/ContestRoleManager.sol\";\n\ncontract ContestRoleManagerMock is ContestRoleManager {\n constructor() public ContestRoleManager(msg.sender) {}\n\n function getActiveOrganizersCount() public view returns (uint256) {\n return activeOrganizersCount;\n }\n\n function getActiveJudgesCount() public view returns (uint256) {\n return activeJudgesCount;\n }\n\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveJudgesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveOrganizersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol\":\"ContestRoleManagerMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol\":{\"keccak256\":\"0x4d179e731fd8409dc28298b5d67bfd027562502c690cde8f30586a7c4a0ffea5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4228fda2d8a9ae461b37a1bb12bb4fdf94b764fab9b702ea711814d3cdc28299\",\"dweb:/ipfs/QmTX4JT8kckkFCeu6Nt2s4HTzDst7ESxbCGbpdHsKB2RCB\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50338080610065576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b61006e81610075565b50506102a1565b6100888161010960201b6102c71760201c565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760209081526040909120805460ff191683179055600654610103929091610158811b61030917901c565b60065550565b6101218160006101b960201b61036a1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156101b2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6101c3828261023a565b15610215576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166102815760405162461bcd60e51b8152600401808060200182810382526022815260200180610b1c6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61086c806102b06000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063927cab4711610066578063927cab47146100fe578063ae2ac4ae14610124578063ce46e79d1461014a578063e4725f0214610152578063ed896d661461017857610093565b806341676f15146100985780634b30b66f146100d2578063567ad862146100dc578063820429ba146100e4575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b031661019e565b604080519115158252519081900360200190f35b6100da6101b0565b005b6100da6101bb565b6100ec6101c4565b60408051918252519081900360200190f35b6100da6004803603602081101561011457600080fd5b50356001600160a01b03166101ca565b6100da6004803603602081101561013a57600080fd5b50356001600160a01b031661021a565b6100ec610267565b6100da6004803603602081101561016857600080fd5b50356001600160a01b031661026d565b6100be6004803603602081101561018e57600080fd5b50356001600160a01b03166102ba565b60006101aa81836103eb565b92915050565b6101b933610452565b565b6101b93361048f565b60035490565b6101d33361019e565b61020e5760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b610217816104cc565b50565b6102233361019e565b61025e5760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b61021781610452565b60065490565b6102763361019e565b6102b15760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b61021781610543565b60006101aa6001836103eb565b6102d260008261036a565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015610363576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61037482826103eb565b156103c6576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166104325760405162461bcd60e51b81526004018080602001828103825260228152602001806108156022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61045b816105ba565b6001600160a01b0381166000908152600460205260409020805460ff191690556003546104899060016105fc565b60035550565b6104988161063e565b6001600160a01b0381166000908152600760205260409020805460ff191690556006546104c69060016105fc565b60065550565b6104d581610680565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19168217905560035461048991610309565b61054c816102c7565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760205260409020805460ff1916821790556006546104c691610309565b6105c56001826106c2565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b600061036383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610729565b6106496000826106c2565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61068b60018261036a565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6106cc82826103eb565b6107075760405162461bcd60e51b81526004018080602001828103825260218152602001806107f46021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081848411156107b85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561077d578181015183820152602001610765565b50505050905090810190601f1680156107aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212200c1ad70c300ad3e5a3269d32ed6af27c0c5d3fbe10bf3255d0d7a2bdb2738a4864736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063927cab4711610066578063927cab47146100fe578063ae2ac4ae14610124578063ce46e79d1461014a578063e4725f0214610152578063ed896d661461017857610093565b806341676f15146100985780634b30b66f146100d2578063567ad862146100dc578063820429ba146100e4575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b031661019e565b604080519115158252519081900360200190f35b6100da6101b0565b005b6100da6101bb565b6100ec6101c4565b60408051918252519081900360200190f35b6100da6004803603602081101561011457600080fd5b50356001600160a01b03166101ca565b6100da6004803603602081101561013a57600080fd5b50356001600160a01b031661021a565b6100ec610267565b6100da6004803603602081101561016857600080fd5b50356001600160a01b031661026d565b6100be6004803603602081101561018e57600080fd5b50356001600160a01b03166102ba565b60006101aa81836103eb565b92915050565b6101b933610452565b565b6101b93361048f565b60035490565b6101d33361019e565b61020e5760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b610217816104cc565b50565b6102233361019e565b61025e5760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b61021781610452565b60065490565b6102763361019e565b6102b15760405162461bcd60e51b81526004018080602001828103825260338152602001806107c16033913960400191505060405180910390fd5b61021781610543565b60006101aa6001836103eb565b6102d260008261036a565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015610363576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61037482826103eb565b156103c6576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166104325760405162461bcd60e51b81526004018080602001828103825260228152602001806108156022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61045b816105ba565b6001600160a01b0381166000908152600460205260409020805460ff191690556003546104899060016105fc565b60035550565b6104988161063e565b6001600160a01b0381166000908152600760205260409020805460ff191690556006546104c69060016105fc565b60065550565b6104d581610680565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff19168217905560035461048991610309565b61054c816102c7565b6005805460018082019092557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384169081179091556000908152600760205260409020805460ff1916821790556006546104c691610309565b6105c56001826106c2565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b600061036383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610729565b6106496000826106c2565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61068b60018261036a565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6106cc82826103eb565b6107075760405162461bcd60e51b81526004018080602001828103825260218152602001806107f46021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b600081848411156107b85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561077d578181015183820152602001610765565b50505050905090810190601f1680156107aa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212200c1ad70c300ad3e5a3269d32ed6af27c0c5d3fbe10bf3255d0d7a2bdb2738a4864736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "116:336:10:-:0;;;176:47;;;;;;;;;-1:-1:-1;209:10:10;;748:30:22;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;692:159;944:84:20;116:336:10;;1682:241:20;1750:28;1770:7;1750:19;;;;;:28;;:::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1864:21;:52;-1:-1:-1;1682:241:20:o;1314:136:22:-;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;116:336:10:-;;;;;;;", + "deployedSourceMap": "116:336:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:113:22;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1046:73:21;;;:::i;:::-;;1227:81:22;;;:::i;346:103:10:-;;;:::i;:::-;;;;;;;;;;;;;;;;1034:100:20;;;;;;;;;;;;;;;;-1:-1:-1;1034:100:20;-1:-1:-1;;;;;1034:100:20;;:::i;1140:97::-;;;;;;;;;;;;;;;;-1:-1:-1;1140:97:20;-1:-1:-1;;;;;1140:97:20;;:::i;229:111:10:-;;;:::i;1122:99:22:-;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;801:105:21:-;;;;;;;;;;;;;;;;-1:-1:-1;801:105:21;-1:-1:-1;;;;;801:105:21;;:::i;1003:113:22:-;1062:4;1085:24;1062:4;1101:7;1085:15;:24::i;:::-;1078:31;1003:113;-1:-1:-1;;1003:113:22:o;1046:73:21:-;1088:24;1101:10;1088:12;:24::i;:::-;1046:73::o;1227:81:22:-;1273:28;1290:10;1273:16;:28::i;346:103:10:-;425:17;;346:103;:::o;1034:100:20:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:18:20::1;1119:7;1109:9;:18::i;:::-;1034:100:::0;:::o;1140:97::-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:21:20::1;1222:7;1209:12;:21::i;229:111:10:-:0;312:21;;229:111;:::o;1122:99:22:-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;801:105:21:-:0;856:4;879:20;:7;891;879:11;:20::i;1314:136:22:-;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;1474:202:20:-;1549:27;1568:7;1549:18;:27::i;:::-;-1:-1:-1;;;;;1586:21:20;;1610:5;1586:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1586:29:20;;;1645:17;;:24;;1586:29;1645:21;:24::i;:::-;1625:17;:44;-1:-1:-1;1474:202:20:o;1929:214::-;2000:31;2023:7;2000:22;:31::i;:::-;-1:-1:-1;;;;;2041:25:20;;2069:5;2041:25;;;:16;:25;;;;;:33;;-1:-1:-1;;2041:33:20;;;2108:21;;:28;;2041:33;2108:25;:28::i;:::-;2084:21;:52;-1:-1:-1;1929:214:20:o;1243:225::-;1315:24;1331:7;1315:15;:24::i;:::-;1349:6;:20;;;;;;;;;;;;;-1:-1:-1;;;;;;1349:20:20;-1:-1:-1;;;;;1349:20:20;;;;;;;;-1:-1:-1;1379:21:20;;;:12;1349:20;1379:21;;;;:28;;-1:-1:-1;;1379:28:20;;;;;1437:17;;:24;;:21;:24::i;1682:241::-;1750:28;1770:7;1750:19;:28::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:25;:28::i;1255:132:21:-;1321:23;:7;1336;1321:14;:23::i;:::-;1359:21;;-1:-1:-1;;;;;1359:21:21;;;;;;;;1255:132;:::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;1456:144:22:-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;1125:124:21:-;1188:20;:7;1200;1188:11;:20::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o;1754:187:24:-;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../roles/ContestRoleManager.sol\";\n\ncontract ContestRoleManagerMock is ContestRoleManager {\n constructor() ContestRoleManager(msg.sender) {}\n\n function getActiveOrganizersCount() public view returns (uint256) {\n return activeOrganizersCount;\n }\n\n function getActiveJudgesCount() public view returns (uint256) {\n return activeJudgesCount;\n }\n\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol", "exportedSymbols": { - "ContestRoleManagerMock": [2585] + "ContestRoleManager": [3326], + "ContestRoleManagerMock": [2694], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2586, + "id": 2695, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2557, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2666, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "40:31:10" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol", "file": "../roles/ContestRoleManager.sol", - "id": 2558, + "id": 2667, "nodeType": "ImportDirective", - "scope": 2586, - "sourceUnit": 3196, - "src": "25:41:10", + "scope": 2695, + "sourceUnit": 3327, + "src": "73:41:10", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2559, + "id": 2668, "name": "ContestRoleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3195, - "src": "103:18:10", + "referencedDeclaration": 3326, + "src": "151:18:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$3195", + "typeIdentifier": "t_contract$_ContestRoleManager_$3326", "typeString": "contract ContestRoleManager" } }, - "id": 2560, + "id": 2669, "nodeType": "InheritanceSpecifier", - "src": "103:18:10" + "src": "151:18:10" } ], - "contractDependencies": [3195, 3287, 3401], + "contractDependencies": [3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2585, - "linearizedBaseContracts": [2585, 3195, 3287, 3401], + "id": 2694, + "linearizedBaseContracts": [2694, 3326, 3416, 3532], "name": "ContestRoleManagerMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2567, + "id": 2676, "nodeType": "Block", - "src": "180:2:10", + "src": "221:2:10", "statements": [] }, - "documentation": null, - "id": 2568, + "id": 2677, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2563, + "id": 2672, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "168:3:10", + "referencedDeclaration": 4294967281, + "src": "209:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2564, + "id": 2673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "168:10:10", + "src": "209:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2565, + "id": 2674, "modifierName": { - "argumentTypes": null, - "id": 2562, + "id": 2671, "name": "ContestRoleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "149:18:10", + "referencedDeclaration": 3326, + "src": "190:18:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3195_$", + "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3326_$", "typeString": "type(contract ContestRoleManager)" } }, "nodeType": "ModifierInvocation", - "src": "149:30:10" + "src": "190:30:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2561, + "id": 2670, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:10" + "src": "187:2:10" }, "returnParameters": { - "id": 2566, + "id": 2675, "nodeType": "ParameterList", "parameters": [], - "src": "180:0:10" + "src": "221:0:10" }, - "scope": 2585, - "src": "128:54:10", + "scope": 2694, + "src": "176:47:10", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2575, + "id": 2684, "nodeType": "Block", - "src": "254:45:10", + "src": "295:45:10", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2573, + "id": 2682, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "271:21:10", + "referencedDeclaration": 3169, + "src": "312:21:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2572, - "id": 2574, + "functionReturnParameters": 2681, + "id": 2683, "nodeType": "Return", - "src": "264:28:10" + "src": "305:28:10" } ] }, - "documentation": null, - "id": 2576, + "functionSelector": "ce46e79d", + "id": 2685, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveOrganizersCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2569, + "id": 2678, "nodeType": "ParameterList", "parameters": [], - "src": "221:2:10" + "src": "262:2:10" }, "returnParameters": { - "id": 2572, + "id": 2681, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2571, + "id": 2680, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2576, - "src": "245:7:10", + "scope": 2685, + "src": "286:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -397,78 +380,77 @@ "typeString": "uint256" }, "typeName": { - "id": 2570, + "id": 2679, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "245:7:10", + "src": "286:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "244:9:10" + "src": "285:9:10" }, - "scope": 2585, - "src": "188:111:10", + "scope": 2694, + "src": "229:111:10", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2583, + "id": 2692, "nodeType": "Block", - "src": "367:41:10", + "src": "408:41:10", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2581, + "id": 2690, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "384:17:10", + "referencedDeclaration": 3160, + "src": "425:17:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2580, - "id": 2582, + "functionReturnParameters": 2689, + "id": 2691, "nodeType": "Return", - "src": "377:24:10" + "src": "418:24:10" } ] }, - "documentation": null, - "id": 2584, + "functionSelector": "820429ba", + "id": 2693, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveJudgesCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2686, "nodeType": "ParameterList", "parameters": [], - "src": "334:2:10" + "src": "375:2:10" }, "returnParameters": { - "id": 2580, + "id": 2689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2688, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2584, - "src": "358:7:10", + "scope": 2693, + "src": "399:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -476,222 +458,220 @@ "typeString": "uint256" }, "typeName": { - "id": 2578, + "id": 2687, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "358:7:10", + "src": "399:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "357:9:10" + "src": "398:9:10" }, - "scope": 2585, - "src": "305:103:10", + "scope": 2694, + "src": "346:103:10", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2586, - "src": "68:343:10" + "scope": 2695, + "src": "116:336:10" } ], - "src": "0:412:10" + "src": "40:413:10" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestRoleManagerMock.sol", "exportedSymbols": { - "ContestRoleManagerMock": [2585] + "ContestRoleManager": [3326], + "ContestRoleManagerMock": [2694], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2586, + "id": 2695, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2557, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2666, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "40:31:10" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol", "file": "../roles/ContestRoleManager.sol", - "id": 2558, + "id": 2667, "nodeType": "ImportDirective", - "scope": 2586, - "sourceUnit": 3196, - "src": "25:41:10", + "scope": 2695, + "sourceUnit": 3327, + "src": "73:41:10", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2559, + "id": 2668, "name": "ContestRoleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3195, - "src": "103:18:10", + "referencedDeclaration": 3326, + "src": "151:18:10", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestRoleManager_$3195", + "typeIdentifier": "t_contract$_ContestRoleManager_$3326", "typeString": "contract ContestRoleManager" } }, - "id": 2560, + "id": 2669, "nodeType": "InheritanceSpecifier", - "src": "103:18:10" + "src": "151:18:10" } ], - "contractDependencies": [3195, 3287, 3401], + "contractDependencies": [3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2585, - "linearizedBaseContracts": [2585, 3195, 3287, 3401], + "id": 2694, + "linearizedBaseContracts": [2694, 3326, 3416, 3532], "name": "ContestRoleManagerMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2567, + "id": 2676, "nodeType": "Block", - "src": "180:2:10", + "src": "221:2:10", "statements": [] }, - "documentation": null, - "id": 2568, + "id": 2677, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2563, + "id": 2672, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "168:3:10", + "referencedDeclaration": 4294967281, + "src": "209:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2564, + "id": 2673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "168:10:10", + "src": "209:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2565, + "id": 2674, "modifierName": { - "argumentTypes": null, - "id": 2562, + "id": 2671, "name": "ContestRoleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3195, - "src": "149:18:10", + "referencedDeclaration": 3326, + "src": "190:18:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3195_$", + "typeIdentifier": "t_type$_t_contract$_ContestRoleManager_$3326_$", "typeString": "type(contract ContestRoleManager)" } }, "nodeType": "ModifierInvocation", - "src": "149:30:10" + "src": "190:30:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2561, + "id": 2670, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:10" + "src": "187:2:10" }, "returnParameters": { - "id": 2566, + "id": 2675, "nodeType": "ParameterList", "parameters": [], - "src": "180:0:10" + "src": "221:0:10" }, - "scope": 2585, - "src": "128:54:10", + "scope": 2694, + "src": "176:47:10", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2575, + "id": 2684, "nodeType": "Block", - "src": "254:45:10", + "src": "295:45:10", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2573, + "id": 2682, "name": "activeOrganizersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "271:21:10", + "referencedDeclaration": 3169, + "src": "312:21:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2572, - "id": 2574, + "functionReturnParameters": 2681, + "id": 2683, "nodeType": "Return", - "src": "264:28:10" + "src": "305:28:10" } ] }, - "documentation": null, - "id": 2576, + "functionSelector": "ce46e79d", + "id": 2685, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveOrganizersCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2569, + "id": 2678, "nodeType": "ParameterList", "parameters": [], - "src": "221:2:10" + "src": "262:2:10" }, "returnParameters": { - "id": 2572, + "id": 2681, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2571, + "id": 2680, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2576, - "src": "245:7:10", + "scope": 2685, + "src": "286:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,78 +679,77 @@ "typeString": "uint256" }, "typeName": { - "id": 2570, + "id": 2679, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "245:7:10", + "src": "286:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "244:9:10" + "src": "285:9:10" }, - "scope": 2585, - "src": "188:111:10", + "scope": 2694, + "src": "229:111:10", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2583, + "id": 2692, "nodeType": "Block", - "src": "367:41:10", + "src": "408:41:10", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2581, + "id": 2690, "name": "activeJudgesCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3034, - "src": "384:17:10", + "referencedDeclaration": 3160, + "src": "425:17:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2580, - "id": 2582, + "functionReturnParameters": 2689, + "id": 2691, "nodeType": "Return", - "src": "377:24:10" + "src": "418:24:10" } ] }, - "documentation": null, - "id": 2584, + "functionSelector": "820429ba", + "id": 2693, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveJudgesCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2577, + "id": 2686, "nodeType": "ParameterList", "parameters": [], - "src": "334:2:10" + "src": "375:2:10" }, "returnParameters": { - "id": 2580, + "id": 2689, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2579, + "id": 2688, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2584, - "src": "358:7:10", + "scope": 2693, + "src": "399:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,45 +757,52 @@ "typeString": "uint256" }, "typeName": { - "id": 2578, + "id": 2687, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "358:7:10", + "src": "399:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "357:9:10" + "src": "398:9:10" }, - "scope": 2585, - "src": "305:103:10", + "scope": 2694, + "src": "346:103:10", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2586, - "src": "68:343:10" + "scope": 2695, + "src": "116:336:10" } ], - "src": "0:412:10" + "src": "40:413:10" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.503Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.090Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + } + }, + "version": 1 } } diff --git a/build/contracts/ContestTeam.json b/build/contracts/ContestTeam.json index cf7bfbb..0c0409d 100644 --- a/build/contracts/ContestTeam.json +++ b/build/contracts/ContestTeam.json @@ -9,7 +9,6 @@ "type": "address" } ], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -153,16 +152,13 @@ "type": "event" }, { - "constant": false, "inputs": [], "name": "_unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -172,21 +168,17 @@ ], "name": "addAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -202,12 +194,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "isPaused", "outputs": [ @@ -217,30 +207,24 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "splitPrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -250,12 +234,10 @@ ], "name": "withdraw", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveMembers", "outputs": [ @@ -265,12 +247,10 @@ "type": "address[]" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveMembersCount", "outputs": [ @@ -280,12 +260,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "balanceOf", "outputs": [ @@ -295,181 +273,185 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "pause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAttendee\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"membersCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"memberPrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeSplit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveMembersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"splitPrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract follows the \\\"withdraw pattern\\\". This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw} function. Future improvements: TODO: implement multisig to close the contract for new members. TODO: implement multisig to destroy the contract. TODO: implement multisig to remove members. TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"balanceOf()\":{\"return\":\"The balance of a team member\"},\"constructor\":{\"details\":\"This class needs to be inherited - internal visibility\",\"params\":{\"initialAttendee\":\"Represents the attendee who owns the contest, initially.\"}},\"getActiveMembers()\":{\"return\":\"An array of addresses representing the accounts of active members\"},\"getActiveMembersCount()\":{\"return\":\"{uint256} Count of active members\"},\"isPaused()\":{\"return\":\"{true} if the contract is paused; otherwise, {false}.\"},\"pause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"splitPrize()\":{\"details\":\"Implements the \\\"withdraw pattern\\\" by allocating balances to team members, so they can request a withdraw once the split is done.\"},\"unpause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"withdraw(uint256)\":{\"details\":\"Implements the \\\"withdraw pattern\\\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. \"}}},\"userdoc\":{\"methods\":{\"balanceOf()\":{\"notice\":\"Get the balance of a team member\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getActiveMembers()\":{\"notice\":\"Gets the active members in the team.\"},\"getActiveMembersCount()\":{\"notice\":\"Gets the number of active team members.\"},\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Trigger the paused state.\"},\"splitPrize()\":{\"notice\":\"Splits the available's contract balance between active team members.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"},\"withdraw(uint256)\":{\"notice\":\"Allows a team member to withdraw its funds from the contract.\"}},\"notice\":\"Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":\"ContestTeam\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0x174cd9f4df41a4b93e01da6375048474e92497b67fa9c9629d13470ecd14b442\",\"urls\":[\"bzz-raw://4d16463127dc2e71cc33acac4d3b1efd45ccf3d75e9e3d42e9bd7803d2ce3777\",\"dweb:/ipfs/QmVDEw7oZprgzxsPM6cFyPrBa3qE9CBQgCHZ6LPwNjE3fV\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x13c9c60ded6c062f523ae97e0ccce959b4445fb9350261ec676fcffa86f7cff0\",\"urls\":[\"bzz-raw://fe0a5cd6d67d4abbe45a965a57efb9fc3de00352f8e1345fdd6d24be6a372327\",\"dweb:/ipfs/Qma1rpyzs9xHQcqHSeXaDwM9ZCrwDdXZ74M62aoD4mBDEy\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0x6d8a1612736c806680064dbb20da3b25b19fb68b0ea157764abe8c4d6c2c1014\",\"urls\":[\"bzz-raw://07c3ea494972a5d0bc34e75068125e2d82f824b973d7c42edaec5fa361e318e3\",\"dweb:/ipfs/QmaH1BkrDJEDkd3uEyTT42h39cGBrGrMCXw1YdaqaFQUsv\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620014f4380380620014f4833981810160405260208110156200003757600080fd5b5051806001600160a01b038116620000b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000c4816001600160e01b03620000d616565b50506001805460ff19169055620003db565b60015460ff16156200014957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6200015f81620001e360201b62000d811760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff191683179055600354620001dd92909162000235811b62000b1b17901c565b60035550565b620001fe816000620002b160201b62000e9f1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015620002aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620002c682826001600160e01b036200035816565b156200033357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620014d26022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6110e780620003eb6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610599565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105e9565b34801561014757600080fd5b506100dc6106f6565b34801561015c57600080fd5b50610165610744565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b0316610817565b604080519115158252519081900360200190f35b34801561020857600080fd5b5061021161082f565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc610889565b34801561024457600080fd5b506102116108d5565b34801561025957600080fd5b506101e86108db565b6100dc6108e4565b34801561027657600080fd5b506100dc61095c565b34801561028b57600080fd5b506100dc610965565b61029d33610817565b6102d85760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60065460009061033d9030319063ffffffff6109f416565b905060008111610394576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103ab60035483610a5190919063ffffffff16565b9050600081116103f6576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040482600354610abb565b90506000805b6002548110156104b65760006002828154811061042357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104ad576001600160a01b038116600090815260056020526040902054610481908663ffffffff610b1b16565b6001600160a01b0382166000908152600560205260409020556104aa838663ffffffff610b1b16565b92505b5060010161040a565b506006546104ca908563ffffffff610b1b16565b60065580821461050b5760405162461bcd60e51b8152600401808060200182810382526024815260200180610fa96024913960400191505060405180910390fd5b60065430311461054c5760405162461bcd60e51b815260040180806020018281038252602a815260200180610fcd602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105a233610817565b6105dd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b6105e681610b75565b50565b33600090815260056020526040902054811115610642576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b33600090815260056020526040902054610662818363ffffffff6109f416565b33600090815260056020526040902081905560065490915061068a908363ffffffff6109f416565b600655604051339083156108fc029084906000818181858888f193505050501580156106ba573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106ff33610817565b61073a5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610c3f565b565b600254600354606091101561075857600080fd5b6060600354604051908082528060200260200182016040528015610786578160200160208202803883390190505b50905060005b600254811015610811576000600282815481106107a557fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561080857808383815181106107e757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b5060010161078c565b50905090565b6000610829818363ffffffff610c4716565b92915050565b600061083a33610817565b6108755760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b503360009081526005602052604090205490565b61089233610817565b6108cd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610cae565b60035490565b60015460ff1690565b600034116109235760405162461bcd60e51b8152600401808060200182810382526021815260200180610f886021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61074233610cb6565b60015460ff166109b5576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610a4b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610aa7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610ab257fe5b04949350505050565b600082610aca57506000610829565b82820282848281610ad757fe5b0414610b145760405162461bcd60e51b81526004018080602001828103825260218152602001806110186021913960400191505060405180910390fd5b9392505050565b600082820183811015610b14576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610bc2576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610bcb81610d81565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610c3991610b1b565b60035550565b610742610965565b60006001600160a01b038216610c8e5760405162461bcd60e51b81526004018080602001828103825260228152602001806110396022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610742610dc9565b60015460ff1615610d03576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610d445760405162461bcd60e51b815260040180806020018281038252602781526020018061108c6027913960400191505060405180910390fd5b610d4d81610e57565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610c3990600163ffffffff6109f416565b610d9260008263ffffffff610e9f16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610e16576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610e6860008263ffffffff610f2016565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610ea98282610c47565b15610efb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f2a8282610c47565b610f655760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820f829eabddfeab00c29dfeb8d3c9a156ee2ecb5d00f8b928c47df7bd82e1b7f0564736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610599565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105e9565b34801561014757600080fd5b506100dc6106f6565b34801561015c57600080fd5b50610165610744565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b0316610817565b604080519115158252519081900360200190f35b34801561020857600080fd5b5061021161082f565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc610889565b34801561024457600080fd5b506102116108d5565b34801561025957600080fd5b506101e86108db565b6100dc6108e4565b34801561027657600080fd5b506100dc61095c565b34801561028b57600080fd5b506100dc610965565b61029d33610817565b6102d85760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60065460009061033d9030319063ffffffff6109f416565b905060008111610394576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103ab60035483610a5190919063ffffffff16565b9050600081116103f6576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040482600354610abb565b90506000805b6002548110156104b65760006002828154811061042357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104ad576001600160a01b038116600090815260056020526040902054610481908663ffffffff610b1b16565b6001600160a01b0382166000908152600560205260409020556104aa838663ffffffff610b1b16565b92505b5060010161040a565b506006546104ca908563ffffffff610b1b16565b60065580821461050b5760405162461bcd60e51b8152600401808060200182810382526024815260200180610fa96024913960400191505060405180910390fd5b60065430311461054c5760405162461bcd60e51b815260040180806020018281038252602a815260200180610fcd602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105a233610817565b6105dd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b6105e681610b75565b50565b33600090815260056020526040902054811115610642576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b33600090815260056020526040902054610662818363ffffffff6109f416565b33600090815260056020526040902081905560065490915061068a908363ffffffff6109f416565b600655604051339083156108fc029084906000818181858888f193505050501580156106ba573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106ff33610817565b61073a5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610c3f565b565b600254600354606091101561075857600080fd5b6060600354604051908082528060200260200182016040528015610786578160200160208202803883390190505b50905060005b600254811015610811576000600282815481106107a557fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561080857808383815181106107e757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b5060010161078c565b50905090565b6000610829818363ffffffff610c4716565b92915050565b600061083a33610817565b6108755760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b503360009081526005602052604090205490565b61089233610817565b6108cd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610cae565b60035490565b60015460ff1690565b600034116109235760405162461bcd60e51b8152600401808060200182810382526021815260200180610f886021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61074233610cb6565b60015460ff166109b5576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610a4b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610aa7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610ab257fe5b04949350505050565b600082610aca57506000610829565b82820282848281610ad757fe5b0414610b145760405162461bcd60e51b81526004018080602001828103825260218152602001806110186021913960400191505060405180910390fd5b9392505050565b600082820183811015610b14576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610bc2576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610bcb81610d81565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610c3991610b1b565b60035550565b610742610965565b60006001600160a01b038216610c8e5760405162461bcd60e51b81526004018080602001828103825260228152602001806110396022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610742610dc9565b60015460ff1615610d03576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610d445760405162461bcd60e51b815260040180806020018281038252602781526020018061108c6027913960400191505060405180910390fd5b610d4d81610e57565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610c3990600163ffffffff6109f416565b610d9260008263ffffffff610e9f16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610e16576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610e6860008263ffffffff610f2016565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610ea98282610c47565b15610efb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f2a8282610c47565b610f655760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820f829eabddfeab00c29dfeb8d3c9a156ee2ecb5d00f8b928c47df7bd82e1b7f0564736f6c634300050c0032", - "sourceMap": "868:6461:2:-;;;1952:97;8:9:-1;5:2;;;30:1;27;20:12;5:2;1952:97:2;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1952:97:2;;-1:-1:-1;;;;;1882:29:19;;1874:62;;;;;-1:-1:-1;;;1874:62:19;;;;;;;;;;;;-1:-1:-1;;;1874:62:19;;;;;;;;;;;;;;;1946:29;1959:15;1946:12;:29::i;:::-;-1:-1:-1;;1098:7:7;:15;;-1:-1:-1;;1098:15:7;;;868:6461:2;;6583:248;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;6655:27:2;6674:7;6655:18;;;;;:27;;:::i;:::-;6692:11;27:10:-1;;39:1;23:18;;;45:23;;;6692:25:2;;;;-1:-1:-1;;;;;;6692:25:2;-1:-1:-1;;;;;6692:25:2;;;;;;;;-1:-1:-1;6727:26:2;;;:17;6692:25;6727:26;;;;;;;:33;;-1:-1:-1;;6727:33:2;;;;;6795:22;;:29;;:22;;:26;;;;;:29;;:::i;:::-;6770:22;:54;-1:-1:-1;6583:248:2:o;2434:125:19:-;2492:23;2507:7;2492:10;:14;;;;;;:23;;;;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;-1:-1:-1;401:27:24;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;868:6461:2:-;;;;;;;", - "deployedSourceMap": "868:6461:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2304:1752;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2304:1752:2;;;:::i;:::-;;2247:96:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2247:96:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2247:96:19;-1:-1:-1;;;;;2247:96:19;;:::i;4376:511:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4376:511:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4376:511:2;;:::i;6390:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6390:71:2;;;:::i;5028:598::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5028:598:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5028:598:2;;;;;;;;;;;;;;;;;2130:111:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2130:111:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2130:111:19;-1:-1:-1;;;;;2130:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;5949:108:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5949:108:2;;;:::i;:::-;;;;;;;;;;;;;;;;6191:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6191:67:2;;;:::i;5738:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5738:111:2;;;:::i;1271:78:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:78:7;;;:::i;348:162:18:-;;;:::i;2349:79:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2349:79:19;;;:::i;2448:105:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2448:105:7;;;:::i;2304:1752:2:-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;2522:15:2;;2469:24;;2496:42;;2504:4;2496:21;;:42;:25;:42;:::i;:::-;2469:69;;2575:1;2556:16;:20;2548:60;;;;;-1:-1:-1;;;2548:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2619:13;2635:44;2656:22;;2635:16;:20;;:44;;;;:::i;:::-;2619:60;;2705:1;2697:5;:9;2689:39;;;;;-1:-1:-1;;;2689:39:2;;;;;;;;;;;;-1:-1:-1;;;2689:39:2;;;;;;;;;;;;;;;2739:28;2770:43;2783:5;2790:22;;2770:12;:43::i;:::-;2739:74;-1:-1:-1;2823:24:2;;2858:364;2890:11;:18;2882:26;;2858:364;;;2933:14;2950:11;2962:5;2950:18;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2950:18:2;3034:25;;;:17;:25;;;;;;;;2950:18;;-1:-1:-1;3034:25:2;;:33;;-1:-1:-1;3034:33:2;3030:182;;;-1:-1:-1;;;;;3106:16:2;;;;;;:8;:16;;;;;;:27;;3127:5;3106:20;:27::i;:::-;-1:-1:-1;;;;;3087:16:2;;;;;;:8;:16;;;;;:46;3170:27;:16;3191:5;3170:20;:27::i;:::-;3151:46;;3030:182;-1:-1:-1;2910:7:2;;2858:364;;;-1:-1:-1;3325:15:2;;:37;;3345:16;3325:37;:19;:37;:::i;:::-;3307:15;:55;3772:40;;;3764:89;;;;-1:-1:-1;;;3764:89:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3896:15;;3879:4;3871:21;:40;3863:95;;;;-1:-1:-1;;;3863:95:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4014:22;;3973:76;;;;;;;;;;;;;;;;;;;;4045:3;;3984:10;;3973:76;;;;;;;;;1527:1:7;;;;2304:1752:2:o;2247:96:19:-;2030:22;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2315:21;2328:7;2315:12;:21::i;:::-;2247:96;:::o;4376:511:2:-;4446:10;4437:20;;;;:8;:20;;;;;;:30;-1:-1:-1;4437:30:2;4429:61;;;;;-1:-1:-1;;;4429:61:2;;;;;;;;;;;;-1:-1:-1;;;4429:61:2;;;;;;;;;;;;;;;4534:10;4500:22;4525:20;;;:8;:20;;;;;;4572:26;4525:20;4591:6;4572:26;:18;:26;:::i;:::-;4617:10;4608:20;;;;:8;:20;;;;;:37;;;4768:15;;4555:43;;-1:-1:-1;4768:27:2;;4788:6;4768:27;:19;:27;:::i;:::-;4750:15;:45;4805:27;;:10;;:27;;;;;4825:6;;4805:27;;;;4825:6;4805:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4847:33:2;;;;;;;;4876:3;;4856:10;;4847:33;;;;;;;;;4376:511;;:::o;6390:71::-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6439:15:2;:13;:15::i;:::-;6390:71::o;5028:598::-;5139:11;:18;5113:22;;5077:16;;-1:-1:-1;5113:44:2;5105:53;;;;;;5168:30;5215:22;;5201:37;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5201:37:2;-1:-1:-1;5168:70:2;-1:-1:-1;5360:13:2;5355:235;5387:11;:18;5379:26;;5355:235;;;5430:14;5447:11;5459:5;5447:18;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5447:18:2;5483:25;;;:17;:25;;;;;;;;5447:18;;-1:-1:-1;5483:25:2;;:33;;-1:-1:-1;5483:33:2;5479:101;;;5559:6;5536:13;5550:5;5536:20;;;;;;;;-1:-1:-1;;;;;5536:29:2;;;:20;;;;;;;;;;;:29;5479:101;-1:-1:-1;5407:7:2;;5355:235;;;-1:-1:-1;5606:13:2;-1:-1:-1;5028:598:2;:::o;2130:111:19:-;2188:4;2211:23;2188:4;2226:7;2211:23;:14;:23;:::i;:::-;2204:30;2130:111;-1:-1:-1;;2130:111:19:o;5949:108:2:-;6004:7;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6039:10:2;6030:20;;;;:8;:20;;;;;;5949:108;:::o;6191:67::-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:13:2;:11;:13::i;5738:111::-;5820:22;;5738:111;:::o;1271:78:7:-;1335:7;;;;1271:78;:::o;348:162:18:-;414:1;402:9;:13;394:59;;;;-1:-1:-1;;;394:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:35;;;488:9;468:35;;;;499:3;;476:10;;468:35;;;;;;;;;348:162::o;2349:79:19:-;2394:27;2410:10;2394:15;:27::i;2448:105:7:-;1665:7;;;;1657:42;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;;;;2496:7;:15;;-1:-1:-1;;2496:15:7;;;2526:20;;;2535:10;2526:20;;;;;;;;;;;;;2448:105::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;2749:44:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:25:o;1693:458::-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:25;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;2069:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:25:o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;6583:248:2;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;6655:27:2;6674:7;6655:18;:27::i;:::-;6692:11;27:10:-1;;39:1;23:18;;;45:23;;;6692:25:2;;;;-1:-1:-1;;;;;;6692:25:2;-1:-1:-1;;;;;6692:25:2;;;;;;;;-1:-1:-1;6727:26:2;;;:17;6692:25;6727:26;;;;:33;;-1:-1:-1;;6727:33:2;;;;;6795:22;;:29;;:26;:29::i;:::-;6770:22;:54;-1:-1:-1;6583:248:2:o;2143:53:7:-;2179:10;:8;:10::i;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1906:49:7:-;1940:8;:6;:8::i;6953:374:2:-;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;7127:1:2;7102:22;;:26;7094:78;;;;-1:-1:-1;;;7094:78:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7182:30;7204:7;7182:21;:30::i;:::-;-1:-1:-1;;;;;7222:26:2;;7251:5;7222:26;;;:17;:26;;;;;:34;;-1:-1:-1;;7222:34:2;;;7291:22;;:29;;-1:-1:-1;7291:26:2;:29::i;2434:125:19:-;2492:23;:10;2507:7;2492:23;:14;:23;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;2271:105:7:-;1487:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;2332:4;2322:14;;-1:-1:-1;;2322:14:7;;;;;2351:18;;;2358:10;2351:18;;;;;;;;;;;;;2271:105::o;2565:133:19:-;2626:26;:10;2644:7;2626:26;:17;:26;:::i;:::-;2667:24;;-1:-1:-1;;;;;2667:24:19;;;;;;;;2565:133;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;-1:-1:-1;401:27:24;;;260:175::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../roles/AttendeeRole.sol\";\nimport \"../payment/Payable.sol\";\nimport \"../lifecycle/Pausable.sol\";\n\n/**\n * @notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n * @dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\n * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\n * function.\n * Future improvements:\n * TODO: implement multisig to close the contract for new members.\n * TODO: implement multisig to destroy the contract.\n * TODO: implement multisig to remove members.\n * TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.\n */\ncontract ContestTeam is Payable, AttendeeRole, Pausable {\n using SafeMath for uint256;\n\n address[] internal teamMembers; // List of members\n uint256 internal activeTeamMembersCount; // Helper for {splitPrize} and {getActiveMembers}.\n mapping(address => bool) internal activeTeamMembers; // Controls active members\n mapping(address => uint256) internal balances; // Controls member's balances.\n uint256 internal reservedBalance; // Controls reserved balance, that was already split.\n\n /// @notice emitted when a member withdraws from the contract.\n event Withdraw(address indexed to, uint256 amount, uint256 indexed datetime);\n /// @notice emitted when the contract's balance (prize) is split between active members.\n event PrizeSplit(\n address indexed sender,\n uint256 totalPrize,\n uint256 membersCount,\n uint256 memberPrize,\n uint256 indexed datetime\n );\n\n ///@dev This class needs to be inherited - internal visibility\n /// @param initialAttendee Represents the attendee who owns the contest, initially.\n constructor(address initialAttendee) public Payable() AttendeeRole(initialAttendee) Pausable() {}\n\n /**\n * @notice Splits the available's contract balance between active team members.\n * @dev Implements the \"withdraw pattern\" by allocating balances to team \n * members, so they can request a withdraw once the split is done.\n */\n function splitPrize() external onlyAttendee whenNotPaused {\n // Cannot split amounts that were split in the past and are still pending from withdraw.\n uint256 availableBalance = address(this).balance.sub(reservedBalance);\n require(availableBalance > 0, \"ContestantTeam balance is 0\");\n\n uint256 prize = availableBalance.div(activeTeamMembersCount);\n require(prize > 0, \"Member prize is 0\");\n\n uint256 expectedDistribution = SafeMath.mul(prize, activeTeamMembersCount);\n uint256 distributedPrize;\n\n for (uint256 index = 0; index < teamMembers.length; index++) {\n address member = teamMembers[index];\n // Credits active member's balance.\n if (activeTeamMembers[member] == true) {\n balances[member] = balances[member].add(prize);\n distributedPrize = distributedPrize.add(prize);\n }\n }\n\n // Makes sure new split is reserved and accounted in future splits\n reservedBalance = reservedBalance.add(availableBalance);\n // Makes sure no invalid distribution was done between members. If so, it reverts.\n // TODO: In case there's a bug in the above logic, contract's funds could be stuck\n // in the contract. See future improvements related to multisignature implementation to mitigate\n // this issue in case a bug is found (tests do not show bugs, but untested scenarioes may rise).\n require(distributedPrize == expectedDistribution, \"Invalid split between active members\");\n require(address(this).balance == reservedBalance, \"Reserved balanced was not updated properly\");\n emit PrizeSplit(msg.sender, availableBalance, activeTeamMembersCount, prize, now);\n }\n\n /**\n * @notice Allows a team member to withdraw its funds from the contract.\n * @dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\n * The method is public, so inactive members (that renounced membership)\n * are still able to withdraw funds in case balance > 0. \n */\n function withdraw(uint256 amount) external {\n require(balances[msg.sender] >= amount, \"Not enough balance\");\n uint256 currentBalance = balances[msg.sender];\n currentBalance = currentBalance.sub(amount);\n balances[msg.sender] = currentBalance;\n // Updates contract's reserved balance, so future splits will be correctly calculated.\n reservedBalance = reservedBalance.sub(amount);\n msg.sender.transfer(amount);\n emit Withdraw(msg.sender, amount, now);\n }\n\n /// @notice Gets the active members in the team.\n /// @return An array of addresses representing the accounts of active members\n function getActiveMembers() public view returns (address[] memory) {\n require(activeTeamMembersCount <= teamMembers.length);\n address[] memory activeMembers = new address[](activeTeamMembersCount);\n // {teamMembers} can have INACTIVE members, so need to loop through to return only active members.\n for (uint256 index = 0; index < teamMembers.length; index++) {\n address member = teamMembers[index];\n if (activeTeamMembers[member] == true) {\n activeMembers[index] = member;\n }\n }\n return activeMembers;\n }\n\n /// @notice Gets the number of active team members.\n /// @return {uint256} Count of active members\n function getActiveMembersCount() external view returns (uint256) {\n return activeTeamMembersCount;\n }\n\n /// @notice Get the balance of a team member\n /// @return The balance of a team member\n function balanceOf() public view onlyAttendee returns (uint256) {\n return balances[msg.sender];\n }\n\n /**\n @notice Trigger the paused state.\n @dev Implements the onlyAttendee modifier for access control.\n */\n function pause() public onlyAttendee {\n super.pause();\n }\n\n /**\n @notice Lifts the paused state.\n @dev Implements the onlyAttendee modifier for access control.\n */\n function unpause() public onlyAttendee {\n super.unpause();\n }\n\n /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.\n function _addAttendee(address account) internal whenNotPaused {\n super._addAttendee(account);\n teamMembers.push(account);\n activeTeamMembers[account] = true;\n activeTeamMembersCount = activeTeamMembersCount.add(1);\n }\n\n /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.\n function _removeAttendee(address account) internal whenNotPaused {\n // Makes sure the contract have at least of member/owner.\n require(activeTeamMembersCount > 1, \"Cannot remove last member from contract\");\n super._removeAttendee(account);\n activeTeamMembers[account] = false;\n activeTeamMembersCount = activeTeamMembersCount.sub(1);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAttendee\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"membersCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"memberPrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeSplit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveMembersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"splitPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract follows the \\\"withdraw pattern\\\". This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw} function. Future improvements: TODO: implement multisig to close the contract for new members. TODO: implement multisig to destroy the contract. TODO: implement multisig to remove members. TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.\",\"kind\":\"dev\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"balanceOf()\":{\"returns\":{\"_0\":\"The balance of a team member\"}},\"constructor\":{\"details\":\"This class needs to be inherited - internal visibility\",\"params\":{\"initialAttendee\":\"Represents the attendee who owns the contest, initially.\"}},\"getActiveMembers()\":{\"returns\":{\"_0\":\"An array of addresses representing the accounts of active members\"}},\"getActiveMembersCount()\":{\"returns\":{\"_0\":\"{uint256} Count of active members\"}},\"isPaused()\":{\"returns\":{\"_0\":\"{true} if the contract is paused; otherwise, {false}.\"}},\"pause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"splitPrize()\":{\"details\":\"Implements the \\\"withdraw pattern\\\" by allocating balances to team members, so they can request a withdraw once the split is done.\"},\"unpause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"withdraw(uint256)\":{\"details\":\"Implements the \\\"withdraw pattern\\\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. \"}},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,uint256,uint256)\":{\"notice\":\"Event emitted when the contract receives a deposit.\"},\"PrizeSplit(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"emitted when the contract's balance (prize) is split between active members.\"},\"Withdraw(address,uint256,uint256)\":{\"notice\":\"emitted when a member withdraws from the contract.\"}},\"kind\":\"user\",\"methods\":{\"balanceOf()\":{\"notice\":\"Get the balance of a team member\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getActiveMembers()\":{\"notice\":\"Gets the active members in the team.\"},\"getActiveMembersCount()\":{\"notice\":\"Gets the number of active team members.\"},\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Trigger the paused state.\"},\"splitPrize()\":{\"notice\":\"Splits the available's contract balance between active team members.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"},\"withdraw(uint256)\":{\"notice\":\"Allows a team member to withdraw its funds from the contract.\"}},\"notice\":\"Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":\"ContestTeam\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0xd1b449fc904fa0f595711cba0a16746a6c4932fce51d51df0c0409bef110a599\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a203265f84124273591308298b9e5c097ba3116d8e3755accd4fbf50d50a1b78\",\"dweb:/ipfs/QmWax7vpTquEcTzfGAorKH8gs2wWPHdpHMe6PdDMKWTLN4\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0xe658c5869875103432729fd020763ede0557d94848fe421aa140050cfad0215c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f8cc47d690ed64cf8780b26b9d25cd945004831b1ade3be565e47b61d070bee\",\"dweb:/ipfs/QmZACTXi1S92e1tF8tXWi5oWKfptjwMTfDyRcJXDPRLUcZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0xa51bbee9262940c417d864967fc5b3c9e90fdb20848ec3afc04c30e1d2bf3e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://926e4555fa2fcf567df76509680bdf5600edc33335f263f11c46a297951d67dc\",\"dweb:/ipfs/QmPkhvmATnQ9KkiGxdohwdWET3RZVfvhDQek3M9ZzZxGtU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620014ee380380620014ee833981810160405260208110156200003757600080fd5b5051806001600160a01b03811662000096576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000a181620000b3565b50506001805460ff191690556200033c565b60015460ff161562000101576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b62000117816200019b60201b620009e51760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff19168317905560035462000195929091620001ed811b62000a2717901c565b60035550565b620001b68160006200024f60201b62000a881790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60008282018381101562000248576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200025b8282620002d3565b15620002ae576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200031c5760405162461bcd60e51b8152600401808060200182810382526022815260200180620014cc6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611180806200034c6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610585565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105d5565b34801561014757600080fd5b506100dc6106d6565b34801561015c57600080fd5b50610165610724565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b031661080e565b604080519115158252519081900360200190f35b34801561020857600080fd5b50610211610820565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc61087a565b34801561024457600080fd5b506102116108c6565b34801561025957600080fd5b506101e86108cc565b6100dc6108d5565b34801561027657600080fd5b506100dc61094d565b34801561028b57600080fd5b506100dc610956565b61029d3361080e565b6102d85760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600061033c60065447610b0990919063ffffffff16565b905060008111610393576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103aa60035483610b4b90919063ffffffff16565b9050600081116103f5576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040382600354610b8d565b90506000805b6002548110156104a95760006002828154811061042257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104a0576001600160a01b03811660009081526005602052604090205461047a9086610a27565b6001600160a01b03821660009081526005602052604090205561049d8386610a27565b92505b50600101610409565b506006546104b79085610a27565b6006558082146104f85760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b60065447146105385760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b61058e3361080e565b6105c95760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6105d281610be6565b50565b3360009081526005602052604090205481111561062e576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106488183610b09565b33600090815260056020526040902081905560065490915061066a9083610b09565b600655604051339083156108fc029084906000818181858888f1935050505015801561069a573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106df3361080e565b61071a5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610cb0565b565b600254600354606091101561073857600080fd5b600060035467ffffffffffffffff8111801561075357600080fd5b5060405190808252806020026020018201604052801561077d578160200160208202803683370190505b50905060005b6002548110156108085760006002828154811061079c57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156107ff57808383815181106107de57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610783565b50905090565b600061081a8183610cb8565b92915050565b600061082b3361080e565b6108665760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6108833361080e565b6108be5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610d1f565b60035490565b60015460ff1690565b600034116109145760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61072233610d27565b60015460ff166109a6576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6109f0600082610a88565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610a81576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610a928282610cb8565b15610ae4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610a8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b6000610a8183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e83565b600082610b9c5750600061081a565b82820282848281610ba957fe5b0414610a815760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b60015460ff1615610c33576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c3c816109e5565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610caa91610a27565b60035550565b610722610956565b60006001600160a01b038216610cff5760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610722610ee8565b60015460ff1615610d74576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610db55760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610dbe81610f76565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610caa906001610b09565b60008184841115610e7b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e40578181015183820152602001610e28565b50505050905090810190601f168015610e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610e40578181015183820152602001610e28565b506000838581610ede57fe5b0495945050505050565b60015460ff1615610f35576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f81600082610fb8565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610fc28282610cb8565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a26469706673582212206073f82e9979af49a2f747705c89b950815c4a887b1a4dd838708e7f0f08b60d64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610585565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105d5565b34801561014757600080fd5b506100dc6106d6565b34801561015c57600080fd5b50610165610724565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b031661080e565b604080519115158252519081900360200190f35b34801561020857600080fd5b50610211610820565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc61087a565b34801561024457600080fd5b506102116108c6565b34801561025957600080fd5b506101e86108cc565b6100dc6108d5565b34801561027657600080fd5b506100dc61094d565b34801561028b57600080fd5b506100dc610956565b61029d3361080e565b6102d85760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600061033c60065447610b0990919063ffffffff16565b905060008111610393576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103aa60035483610b4b90919063ffffffff16565b9050600081116103f5576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040382600354610b8d565b90506000805b6002548110156104a95760006002828154811061042257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104a0576001600160a01b03811660009081526005602052604090205461047a9086610a27565b6001600160a01b03821660009081526005602052604090205561049d8386610a27565b92505b50600101610409565b506006546104b79085610a27565b6006558082146104f85760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b60065447146105385760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b61058e3361080e565b6105c95760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6105d281610be6565b50565b3360009081526005602052604090205481111561062e576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106488183610b09565b33600090815260056020526040902081905560065490915061066a9083610b09565b600655604051339083156108fc029084906000818181858888f1935050505015801561069a573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106df3361080e565b61071a5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610cb0565b565b600254600354606091101561073857600080fd5b600060035467ffffffffffffffff8111801561075357600080fd5b5060405190808252806020026020018201604052801561077d578160200160208202803683370190505b50905060005b6002548110156108085760006002828154811061079c57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156107ff57808383815181106107de57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610783565b50905090565b600061081a8183610cb8565b92915050565b600061082b3361080e565b6108665760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6108833361080e565b6108be5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610d1f565b60035490565b60015460ff1690565b600034116109145760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61072233610d27565b60015460ff166109a6576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6109f0600082610a88565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610a81576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610a928282610cb8565b15610ae4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610a8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b6000610a8183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e83565b600082610b9c5750600061081a565b82820282848281610ba957fe5b0414610a815760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b60015460ff1615610c33576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c3c816109e5565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610caa91610a27565b60035550565b610722610956565b60006001600160a01b038216610cff5760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610722610ee8565b60015460ff1615610d74576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610db55760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610dbe81610f76565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610caa906001610b09565b60008184841115610e7b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e40578181015183820152602001610e28565b50505050905090810190601f168015610e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610e40578181015183820152602001610e28565b506000838581610ede57fe5b0495945050505050565b60015460ff1615610f35576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f81600082610fb8565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610fc28282610cb8565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a26469706673582212206073f82e9979af49a2f747705c89b950815c4a887b1a4dd838708e7f0f08b60d64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "908:6514:2:-:0;;;1992:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1992:90:2;;-1:-1:-1;;;;;741:29:19;;733:62;;;;;-1:-1:-1;;;733:62:19;;;;;;;;;;;;-1:-1:-1;;;733:62:19;;;;;;;;;;;;;;;805:29;818:15;805:12;:29::i;:::-;-1:-1:-1;;1146:7:7;:15;;-1:-1:-1;;1146:15:7;;;908:6514:2;;6658:257;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;6739:27:2::1;6758:7;6739:18;;;;;:27;;:::i;:::-;6776:11;:25:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;6776:25:2::1;-1:-1:-1::0;;;;;6776:25:2;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6811:26:2;;;:17:::1;6776:25;6811:26:::0;;;;;;;:33;;-1:-1:-1;;6811:33:2::1;::::0;::::1;::::0;;6879:22:::1;::::0;:29:::1;::::0;:22;;:26:::1;::::0;::::1;;;:29:::0;::::1;:::i;:::-;6854:22;:54:::0;-1:-1:-1;6658:257:2:o;1309:133:19:-;1375:23;1390:7;1375:10;:14;;;;;;:23;;;;:::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;-1:-1:-1;564:27:23;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;908:6514:2:-;;;;;;;", + "deployedSourceMap": "908:6514:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2337:1764;;;;;;;;;;;;;:::i;:::-;;1106:104:19;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1106:104:19;-1:-1:-1;;;;;1106:104:19;;:::i;4421:523:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4421:523:2;;:::i;6456:80::-;;;;;;;;;;;;;:::i;5085:598::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:111:19;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;989:111:19;-1:-1:-1;;;;;989:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;6006:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6248:76;;;;;;;;;;;;;:::i;5795:111::-;;;;;;;;;;;;;:::i;1319:78:7:-;;;;;;;;;;;;;:::i;396:183:18:-;;;:::i;1216:87:19:-;;;;;;;;;;;;;:::i;2520:113:7:-;;;;;;;;;;;;;:::i;2337:1764:2:-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1535:7:7::1;::::0;::::1;;1534:8;1526:39;;;::::0;;-1:-1:-1;;;1526:39:7;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;::::1;;2502:24:2::2;2529:42;2555:15;;2529:21;:25;;:42;;;;:::i;:::-;2502:69;;2608:1;2589:16;:20;2581:60;;;::::0;;-1:-1:-1;;;2581:60:2;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2652:13;2668:44;2689:22;;2668:16;:20;;:44;;;;:::i;:::-;2652:60;;2738:1;2730:5;:9;2722:39;;;::::0;;-1:-1:-1;;;2722:39:2;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2722:39:2;;;;;;;;;;;;;::::2;;2772:28;2803:43;2816:5;2823:22;;2803:12;:43::i;:::-;2772:74:::0;-1:-1:-1;2856:24:2::2;::::0;2891:364:::2;2923:11;:18:::0;2915:26;::::2;2891:364;;;2966:14;2983:11;2995:5;2983:18;;;;;;;;;::::0;;;::::2;::::0;;;;;;::::2;::::0;-1:-1:-1;;;;;2983:18:2::2;3067:25:::0;;;:17:::2;:25:::0;;;;;;;;2983:18;;-1:-1:-1;3067:25:2::2;;:33;;-1:-1:-1::0;3067:33:2::2;3063:182;;;-1:-1:-1::0;;;;;3139:16:2;::::2;;::::0;;;:8:::2;:16;::::0;;;;;:27:::2;::::0;3160:5;3139:20:::2;:27::i;:::-;-1:-1:-1::0;;;;;3120:16:2;::::2;;::::0;;;:8:::2;:16;::::0;;;;:46;3203:27:::2;:16:::0;3224:5;3203:20:::2;:27::i;:::-;3184:46;;3063:182;-1:-1:-1::0;2943:7:2::2;;2891:364;;;-1:-1:-1::0;3358:15:2::2;::::0;:37:::2;::::0;3378:16;3358:19:::2;:37::i;:::-;3340:15;:55:::0;3805:40;;::::2;3797:89;;;;-1:-1:-1::0;;;3797:89:2::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3929:15;;3904:21;:40;3896:95;;;;-1:-1:-1::0;;;3896:95:2::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4047:22;::::0;4006:88:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;4078:15:::2;::::0;4017:10:::2;::::0;4006:88:::2;::::0;;;;;;;::::2;1575:1:7;;;;2337:1764:2:o:0;1106:104:19:-;889:22;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:21:::1;1195:7;1182:12;:21::i;:::-;1106:104:::0;:::o;4421:523:2:-;4491:10;4482:20;;;;:8;:20;;;;;;:30;-1:-1:-1;4482:30:2;4474:61;;;;;-1:-1:-1;;;4474:61:2;;;;;;;;;;;;-1:-1:-1;;;4474:61:2;;;;;;;;;;;;;;;4579:10;4545:22;4570:20;;;:8;:20;;;;;;4617:26;4570:20;4636:6;4617:18;:26::i;:::-;4662:10;4653:20;;;;:8;:20;;;;;:37;;;4813:15;;4600:43;;-1:-1:-1;4813:27:2;;4833:6;4813:19;:27::i;:::-;4795:15;:45;4850:27;;:10;;:27;;;;;4870:6;;4850:27;;;;4870:6;4850:10;:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4892:45:2;;;;;;;;4921:15;;4901:10;;4892:45;;;;;;;;;4421:523;;:::o;6456:80::-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6514:15:2::1;:13;:15::i;:::-;6456:80::o:0;5085:598::-;5196:11;:18;5170:22;;5134:16;;-1:-1:-1;5170:44:2;5162:53;;;;;;5225:30;5272:22;;5258:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5258:37:2;;5225:70;;5417:13;5412:235;5444:11;:18;5436:26;;5412:235;;;5487:14;5504:11;5516:5;5504:18;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5504:18:2;5540:25;;;:17;:25;;;;;;;;5504:18;;-1:-1:-1;5540:25:2;;:33;;-1:-1:-1;5540:33:2;5536:101;;;5616:6;5593:13;5607:5;5593:20;;;;;;;;-1:-1:-1;;;;;5593:29:2;;;:20;;;;;;;;;;;:29;5536:101;-1:-1:-1;5464:7:2;;5412:235;;;-1:-1:-1;5663:13:2;-1:-1:-1;5085:598:2;:::o;989:111:19:-;1047:4;1070:23;1047:4;1085:7;1070:14;:23::i;:::-;1063:30;989:111;-1:-1:-1;;989:111:19:o;6006:108:2:-;6061:7;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6096:10:2::1;6087:20;::::0;;;:8:::1;:20;::::0;;;;;6006:108;:::o;6248:76::-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:13:2::1;:11;:13::i;5795:111::-:0;5877:22;;5795:111;:::o;1319:78:7:-;1383:7;;;;1319:78;:::o;396:183:18:-;471:1;459:9;:13;451:59;;;;-1:-1:-1;;;451:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:47;;;545:9;525:47;;;;556:15;;533:10;;525:47;;;;;;;;;396:183::o;1216:87:19:-;1269:27;1285:10;1269:15;:27::i;2520:113:7:-;1713:7;;;;1705:42;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;;;;2576:7:::1;:15:::0;;-1:-1:-1;;2576:15:7::1;::::0;;2606:20:::1;::::0;;2615:10:::1;2606:20:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2520:113::o:0;1309:133:19:-;1375:23;:10;1390:7;1375:14;:23::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;-1:-1:-1;564:27:23;;;423:175::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;3109:130::-;3167:7;3193:39;3197:1;3200;3193:39;;;;;;;;;;;;;;;;;:3;:39::i;2188:459::-;2246:7;2487:6;2483:45;;-1:-1:-1;2516:1:24;2509:8;;2483:45;2550:5;;;2554:1;2550;:5;:1;2573:5;;;;;:10;2565:56;;;;-1:-1:-1;;;2565:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6658:257:2;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;6739:27:2::1;6758:7;6739:18;:27::i;:::-;6776:11;:25:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;6776:25:2::1;-1:-1:-1::0;;;;;6776:25:2;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6811:26:2;;;:17:::1;6776:25;6811:26:::0;;;;:33;;-1:-1:-1;;6811:33:2::1;::::0;::::1;::::0;;6879:22:::1;::::0;:29:::1;::::0;:26:::1;:29::i;:::-;6854:22;:54:::0;-1:-1:-1;6658:257:2:o;2199:61:7:-;2243:10;:8;:10::i;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;1954:57:7:-;1996:8;:6;:8::i;7037:383:2:-;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;7220:1:2::1;7195:22;;:26;7187:78;;;;-1:-1:-1::0;;;7187:78:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7275:30;7297:7;7275:21;:30::i;:::-;-1:-1:-1::0;;;;;7315:26:2;::::1;7344:5;7315:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;7315:34:2::1;::::0;;7384:22:::1;::::0;:29:::1;::::0;-1:-1:-1;7384:26:2::1;:29::i;1754:187:24:-:0;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o;3721:272::-;3807:7;3841:12;3834:5;3826:28;;;;-1:-1:-1;;;3826:28:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3826:28:24;;;;;;;;;;;;;;;;;;3864:9;3880:1;3876;:5;;;;;;;3721:272;-1:-1:-1;;;;;3721:272:24:o;2335:113:7:-;1535:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;2404:4:::1;2394:14:::0;;-1:-1:-1;;2394:14:7::1;::::0;::::1;::::0;;2423:18:::1;::::0;;2430:10:::1;2423:18:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2335:113::o:0;1448:141:19:-;1517:26;:10;1535:7;1517:17;:26::i;:::-;1558:24;;-1:-1:-1;;;;;1558:24:19;;;;;;;;1448:141;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../roles/AttendeeRole.sol\";\nimport \"../payment/Payable.sol\";\nimport \"../lifecycle/Pausable.sol\";\n\n/**\n * @notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n * @dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\n * accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\n * function.\n * Future improvements:\n * TODO: implement multisig to close the contract for new members.\n * TODO: implement multisig to destroy the contract.\n * TODO: implement multisig to remove members.\n * TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.\n */\ncontract ContestTeam is Payable, AttendeeRole, Pausable {\n using SafeMath for uint256;\n\n address[] internal teamMembers; // List of members\n uint256 internal activeTeamMembersCount; // Helper for {splitPrize} and {getActiveMembers}.\n mapping(address => bool) internal activeTeamMembers; // Controls active members\n mapping(address => uint256) internal balances; // Controls member's balances.\n uint256 internal reservedBalance; // Controls reserved balance, that was already split.\n\n /// @notice emitted when a member withdraws from the contract.\n event Withdraw(address indexed to, uint256 amount, uint256 indexed datetime);\n /// @notice emitted when the contract's balance (prize) is split between active members.\n event PrizeSplit(\n address indexed sender,\n uint256 totalPrize,\n uint256 membersCount,\n uint256 memberPrize,\n uint256 indexed datetime\n );\n\n ///@dev This class needs to be inherited - internal visibility\n /// @param initialAttendee Represents the attendee who owns the contest, initially.\n constructor(address initialAttendee) Payable() AttendeeRole(initialAttendee) Pausable() {}\n\n /**\n * @notice Splits the available's contract balance between active team members.\n * @dev Implements the \"withdraw pattern\" by allocating balances to team \n * members, so they can request a withdraw once the split is done.\n */\n function splitPrize() external onlyAttendee whenNotPaused {\n // Cannot split amounts that were split in the past and are still pending from withdraw.\n uint256 availableBalance = address(this).balance.sub(reservedBalance);\n require(availableBalance > 0, \"ContestantTeam balance is 0\");\n\n uint256 prize = availableBalance.div(activeTeamMembersCount);\n require(prize > 0, \"Member prize is 0\");\n\n uint256 expectedDistribution = SafeMath.mul(prize, activeTeamMembersCount);\n uint256 distributedPrize;\n\n for (uint256 index = 0; index < teamMembers.length; index++) {\n address member = teamMembers[index];\n // Credits active member's balance.\n if (activeTeamMembers[member] == true) {\n balances[member] = balances[member].add(prize);\n distributedPrize = distributedPrize.add(prize);\n }\n }\n\n // Makes sure new split is reserved and accounted in future splits\n reservedBalance = reservedBalance.add(availableBalance);\n // Makes sure no invalid distribution was done between members. If so, it reverts.\n // TODO: In case there's a bug in the above logic, contract's funds could be stuck\n // in the contract. See future improvements related to multisignature implementation to mitigate\n // this issue in case a bug is found (tests do not show bugs, but untested scenarioes may rise).\n require(distributedPrize == expectedDistribution, \"Invalid split between active members\");\n require(address(this).balance == reservedBalance, \"Reserved balanced was not updated properly\");\n emit PrizeSplit(msg.sender, availableBalance, activeTeamMembersCount, prize, block.timestamp);\n }\n\n /**\n * @notice Allows a team member to withdraw its funds from the contract.\n * @dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\n * The method is public, so inactive members (that renounced membership)\n * are still able to withdraw funds in case balance > 0. \n */\n function withdraw(uint256 amount) external {\n require(balances[msg.sender] >= amount, \"Not enough balance\");\n uint256 currentBalance = balances[msg.sender];\n currentBalance = currentBalance.sub(amount);\n balances[msg.sender] = currentBalance;\n // Updates contract's reserved balance, so future splits will be correctly calculated.\n reservedBalance = reservedBalance.sub(amount);\n msg.sender.transfer(amount);\n emit Withdraw(msg.sender, amount, block.timestamp);\n }\n\n /// @notice Gets the active members in the team.\n /// @return An array of addresses representing the accounts of active members\n function getActiveMembers() public view returns (address[] memory) {\n require(activeTeamMembersCount <= teamMembers.length);\n address[] memory activeMembers = new address[](activeTeamMembersCount);\n // {teamMembers} can have INACTIVE members, so need to loop through to return only active members.\n for (uint256 index = 0; index < teamMembers.length; index++) {\n address member = teamMembers[index];\n if (activeTeamMembers[member] == true) {\n activeMembers[index] = member;\n }\n }\n return activeMembers;\n }\n\n /// @notice Gets the number of active team members.\n /// @return {uint256} Count of active members\n function getActiveMembersCount() external view returns (uint256) {\n return activeTeamMembersCount;\n }\n\n /// @notice Get the balance of a team member\n /// @return The balance of a team member\n function balanceOf() public view onlyAttendee returns (uint256) {\n return balances[msg.sender];\n }\n\n /**\n @notice Trigger the paused state.\n @dev Implements the onlyAttendee modifier for access control.\n */\n function pause() public override onlyAttendee {\n super.pause();\n }\n\n /**\n @notice Lifts the paused state.\n @dev Implements the onlyAttendee modifier for access control.\n */\n function unpause() public override onlyAttendee {\n super.unpause();\n }\n\n /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.\n function _addAttendee(address account) internal override whenNotPaused {\n super._addAttendee(account);\n teamMembers.push(account);\n activeTeamMembers[account] = true;\n activeTeamMembersCount = activeTeamMembersCount.add(1);\n }\n\n /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.\n function _removeAttendee(address account) internal override whenNotPaused {\n // Makes sure the contract have at least of member/owner.\n require(activeTeamMembersCount > 1, \"Cannot remove last member from contract\");\n super._removeAttendee(account);\n activeTeamMembers[account] = false;\n activeTeamMembersCount = activeTeamMembersCount.sub(1);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "exportedSymbols": { - "ContestTeam": [1066] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 1067, + "id": 1115, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 650, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 676, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "40:31:2" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 651, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 677, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 4216, - "src": "25:59:2", + "scope": 1115, + "sourceUnit": 3815, + "src": "73:51:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "file": "../roles/AttendeeRole.sol", - "id": 652, + "id": 678, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 3018, - "src": "85:35:2", + "scope": 1115, + "sourceUnit": 3143, + "src": "125:35:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "file": "../payment/Payable.sol", - "id": 653, + "id": 679, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 2904, - "src": "121:32:2", + "scope": 1115, + "sourceUnit": 3027, + "src": "161:32:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "file": "../lifecycle/Pausable.sol", - "id": 654, + "id": 680, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 2500, - "src": "154:35:2", + "scope": 1115, + "sourceUnit": 2608, + "src": "194:35:2", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 655, + "id": 682, "name": "Payable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2903, - "src": "892:7:2", + "referencedDeclaration": 3026, + "src": "932:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Payable_$2903", + "typeIdentifier": "t_contract$_Payable_$3026", "typeString": "contract Payable" } }, - "id": 656, + "id": 683, "nodeType": "InheritanceSpecifier", - "src": "892:7:2" + "src": "932:7:2" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 657, + "id": 684, "name": "AttendeeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3017, - "src": "901:12:2", + "referencedDeclaration": 3142, + "src": "941:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AttendeeRole_$3017", + "typeIdentifier": "t_contract$_AttendeeRole_$3142", "typeString": "contract AttendeeRole" } }, - "id": 658, + "id": 685, "nodeType": "InheritanceSpecifier", - "src": "901:12:2" + "src": "941:12:2" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 659, + "id": 686, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2499, - "src": "915:8:2", + "referencedDeclaration": 2607, + "src": "955:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$2499", + "typeIdentifier": "t_contract$_Pausable_$2607", "typeString": "contract Pausable" } }, - "id": 660, + "id": 687, "nodeType": "InheritanceSpecifier", - "src": "915:8:2" + "src": "955:8:2" } ], - "contractDependencies": [2499, 2869, 2903, 3017], + "contractDependencies": [2607, 2987, 3026, 3142], "contractKind": "contract", - "documentation": "@notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n@dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\naccounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\nfunction.\nFuture improvements:\nTODO: implement multisig to close the contract for new members.\nTODO: implement multisig to destroy the contract.\nTODO: implement multisig to remove members.\nTODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.", + "documentation": { + "id": 681, + "nodeType": "StructuredDocumentation", + "src": "231:676:2", + "text": " @notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n @dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\n accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\n function.\n Future improvements:\n TODO: implement multisig to close the contract for new members.\n TODO: implement multisig to destroy the contract.\n TODO: implement multisig to remove members.\n TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}." + }, "fullyImplemented": true, - "id": 1066, - "linearizedBaseContracts": [1066, 2499, 3017, 2903, 2869], + "id": 1114, + "linearizedBaseContracts": [1114, 2607, 3142, 3026, 2987], "name": "ContestTeam", "nodeType": "ContractDefinition", "nodes": [ { - "id": 663, + "id": 690, "libraryName": { - "contractScope": null, - "id": 661, + "id": 688, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "936:8:2", + "referencedDeclaration": 3814, + "src": "976:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "930:27:2", + "src": "970:27:2", "typeName": { - "id": 662, + "id": 689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "949:7:2", + "src": "989:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -478,11 +460,12 @@ }, { "constant": false, - "id": 666, + "id": 693, + "mutability": "mutable", "name": "teamMembers", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "963:30:2", + "scope": 1114, + "src": "1003:30:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -491,35 +474,34 @@ }, "typeName": { "baseType": { - "id": 664, + "id": 691, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:2", + "src": "1003:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 665, - "length": null, + "id": 692, "nodeType": "ArrayTypeName", - "src": "963:9:2", + "src": "1003:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 668, + "id": 695, + "mutability": "mutable", "name": "activeTeamMembersCount", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1018:39:2", + "scope": 1114, + "src": "1058:39:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -527,25 +509,25 @@ "typeString": "uint256" }, "typeName": { - "id": 667, + "id": 694, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1018:7:2", + "src": "1058:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 672, + "id": 699, + "mutability": "mutable", "name": "activeTeamMembers", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1114:51:2", + "scope": 1114, + "src": "1154:51:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -553,44 +535,44 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 671, + "id": 698, "keyType": { - "id": 669, + "id": 696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1122:7:2", + "src": "1162:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1114:24:2", + "src": "1154:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 670, + "id": 697, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1133:4:2", + "src": "1173:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 676, + "id": 703, + "mutability": "mutable", "name": "balances", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1198:45:2", + "scope": 1114, + "src": "1238:45:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -598,44 +580,44 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 675, + "id": 702, "keyType": { - "id": 673, + "id": 700, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1206:7:2", + "src": "1246:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1198:27:2", + "src": "1238:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 674, + "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1217:7:2", + "src": "1257:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 678, + "id": 705, + "mutability": "mutable", "name": "reservedBalance", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1280:32:2", + "scope": 1114, + "src": "1320:32:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -643,36 +625,41 @@ "typeString": "uint256" }, "typeName": { - "id": 677, + "id": 704, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1280:7:2", + "src": "1320:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@notice emitted when a member withdraws from the contract.", - "id": 686, + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "1413:62:2", + "text": "@notice emitted when a member withdraws from the contract." + }, + "id": 714, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { - "id": 685, + "id": 713, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 680, + "id": 708, "indexed": true, + "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1455:18:2", + "scope": 714, + "src": "1495:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -680,27 +667,27 @@ "typeString": "address" }, "typeName": { - "id": 679, + "id": 707, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1455:7:2", + "src": "1495:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 682, + "id": 710, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1475:14:2", + "scope": 714, + "src": "1515:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -708,26 +695,26 @@ "typeString": "uint256" }, "typeName": { - "id": 681, + "id": 709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1475:7:2", + "src": "1515:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 684, + "id": 712, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1491:24:2", + "scope": 714, + "src": "1531:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -735,41 +722,46 @@ "typeString": "uint256" }, "typeName": { - "id": 683, + "id": 711, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1491:7:2", + "src": "1531:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1454:62:2" + "src": "1494:62:2" }, - "src": "1440:77:2" + "src": "1480:77:2" }, { "anonymous": false, - "documentation": "@notice emitted when the contract's balance (prize) is split between active members.", - "id": 698, + "documentation": { + "id": 715, + "nodeType": "StructuredDocumentation", + "src": "1562:88:2", + "text": "@notice emitted when the contract's balance (prize) is split between active members." + }, + "id": 727, "name": "PrizeSplit", "nodeType": "EventDefinition", "parameters": { - "id": 697, + "id": 726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 717, "indexed": true, + "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1641:22:2", + "scope": 727, + "src": "1681:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -777,27 +769,27 @@ "typeString": "address" }, "typeName": { - "id": 687, + "id": 716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1641:7:2", + "src": "1681:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 690, + "id": 719, "indexed": false, + "mutability": "mutable", "name": "totalPrize", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1673:18:2", + "scope": 727, + "src": "1713:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -805,26 +797,26 @@ "typeString": "uint256" }, "typeName": { - "id": 689, + "id": 718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1673:7:2", + "src": "1713:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 692, + "id": 721, "indexed": false, + "mutability": "mutable", "name": "membersCount", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1701:20:2", + "scope": 727, + "src": "1741:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -832,26 +824,26 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1701:7:2", + "src": "1741:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 694, + "id": 723, "indexed": false, + "mutability": "mutable", "name": "memberPrize", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1731:19:2", + "scope": 727, + "src": "1771:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -859,26 +851,26 @@ "typeString": "uint256" }, "typeName": { - "id": 693, + "id": 722, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1731:7:2", + "src": "1771:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 696, + "id": 725, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1760:24:2", + "scope": 727, + "src": "1800:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -886,120 +878,121 @@ "typeString": "uint256" }, "typeName": { - "id": 695, + "id": 724, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1760:7:2", + "src": "1800:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1631:159:2" + "src": "1671:159:2" }, - "src": "1615:176:2" + "src": "1655:176:2" }, { "body": { - "id": 710, + "id": 740, "nodeType": "Block", - "src": "2047:2:2", + "src": "2080:2:2", "statements": [] }, - "documentation": "@dev This class needs to be inherited - internal visibility\n @param initialAttendee Represents the attendee who owns the contest, initially.", - "id": 711, + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "1837:150:2", + "text": "@dev This class needs to be inherited - internal visibility\n @param initialAttendee Represents the attendee who owns the contest, initially." + }, + "id": 741, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 703, + "id": 733, "modifierName": { - "argumentTypes": null, - "id": 702, + "id": 732, "name": "Payable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "1996:7:2", + "referencedDeclaration": 3026, + "src": "2029:7:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Payable_$2903_$", + "typeIdentifier": "t_type$_t_contract$_Payable_$3026_$", "typeString": "type(contract Payable)" } }, "nodeType": "ModifierInvocation", - "src": "1996:9:2" + "src": "2029:9:2" }, { "arguments": [ { - "argumentTypes": null, - "id": 705, + "id": 735, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "2019:15:2", + "referencedDeclaration": 730, + "src": "2052:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 706, + "id": 736, "modifierName": { - "argumentTypes": null, - "id": 704, + "id": 734, "name": "AttendeeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3017, - "src": "2006:12:2", + "referencedDeclaration": 3142, + "src": "2039:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3017_$", + "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3142_$", "typeString": "type(contract AttendeeRole)" } }, "nodeType": "ModifierInvocation", - "src": "2006:29:2" + "src": "2039:29:2" }, { "arguments": [], - "id": 708, + "id": 738, "modifierName": { - "argumentTypes": null, - "id": 707, + "id": 737, "name": "Pausable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2036:8:2", + "referencedDeclaration": 2607, + "src": "2069:8:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pausable_$2499_$", + "typeIdentifier": "t_type$_t_contract$_Pausable_$2607_$", "typeString": "type(contract Pausable)" } }, "nodeType": "ModifierInvocation", - "src": "2036:10:2" + "src": "2069:10:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 701, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 700, + "id": 730, + "mutability": "mutable", "name": "initialAttendee", "nodeType": "VariableDeclaration", - "scope": 711, - "src": "1964:23:2", + "scope": 741, + "src": "2004:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1007,50 +1000,50 @@ "typeString": "address" }, "typeName": { - "id": 699, + "id": 729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1964:7:2", + "src": "2004:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1963:25:2" + "src": "2003:25:2" }, "returnParameters": { - "id": 709, + "id": 739, "nodeType": "ParameterList", "parameters": [], - "src": "2047:0:2" + "src": "2080:0:2" }, - "scope": 1066, - "src": "1952:97:2", + "scope": 1114, + "src": "1992:90:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 837, + "id": 871, "nodeType": "Block", - "src": "2362:1694:2", + "src": "2395:1706:2", "statements": [ { - "assignments": [719], + "assignments": [750], "declarations": [ { "constant": false, - "id": 719, + "id": 750, + "mutability": "mutable", "name": "availableBalance", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2469:24:2", + "scope": 871, + "src": "2502:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1058,31 +1051,28 @@ "typeString": "uint256" }, "typeName": { - "id": 718, + "id": 749, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2469:7:2", + "src": "2502:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 727, + "id": 759, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 725, + "id": 757, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "2522:15:2", + "referencedDeclaration": 705, + "src": "2555:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1097,20 +1087,17 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 721, + "id": 753, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "2504:4:2", + "referencedDeclaration": 4294967268, + "src": "2537:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -1118,24 +1105,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 720, + "id": 752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2496:7:2", + "src": "2529:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2529:7:2", + "typeDescriptions": {} + } }, - "id": 722, + "id": 754, "isConstant": false, "isLValue": false, "isPure": false, @@ -1143,41 +1136,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2496:13:2", + "src": "2529:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 723, + "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2496:21:2", + "src": "2529:21:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 724, + "id": 756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "2496:25:2", + "referencedDeclaration": 3664, + "src": "2529:25:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 726, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -1185,38 +1178,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2496:42:2", + "src": "2529:42:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2469:69:2" + "src": "2502:69:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 731, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 729, + "id": 761, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "2556:16:2", + "referencedDeclaration": 750, + "src": "2589:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1225,41 +1216,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 730, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2575:1:2", - "subdenomination": null, + "src": "2608:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2556:20:2", + "src": "2589:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "436f6e74657374616e745465616d2062616c616e63652069732030", - "id": 732, + "id": 764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2578:29:2", - "subdenomination": null, + "src": "2611:29:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ff2a089abb906faf06738d798bc9f928ff05571cb9ac0c49e38afeb68dc1393e", "typeString": "literal_string \"ContestantTeam balance is 0\"" @@ -1278,18 +1265,18 @@ "typeString": "literal_string \"ContestantTeam balance is 0\"" } ], - "id": 728, + "id": 760, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2548:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2581:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 733, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, @@ -1297,26 +1284,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2548:60:2", + "src": "2581:60:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 734, + "id": 766, "nodeType": "ExpressionStatement", - "src": "2548:60:2" + "src": "2581:60:2" }, { - "assignments": [736], + "assignments": [768], "declarations": [ { "constant": false, - "id": 736, + "id": 768, + "mutability": "mutable", "name": "prize", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2619:13:2", + "scope": 871, + "src": "2652:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1324,31 +1313,28 @@ "typeString": "uint256" }, "typeName": { - "id": 735, + "id": 767, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2619:7:2", + "src": "2652:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 741, + "id": 773, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 739, + "id": 771, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "2656:22:2", + "referencedDeclaration": 695, + "src": "2689:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1363,33 +1349,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 737, + "id": 769, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "2635:16:2", + "referencedDeclaration": 750, + "src": "2668:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 738, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 4193, - "src": "2635:20:2", + "referencedDeclaration": 3744, + "src": "2668:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 740, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -1397,38 +1382,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2635:44:2", + "src": "2668:44:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2619:60:2" + "src": "2652:60:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 745, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 743, + "id": 775, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "2697:5:2", + "referencedDeclaration": 768, + "src": "2730:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1437,41 +1420,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 744, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:1:2", - "subdenomination": null, + "src": "2738:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2697:9:2", + "src": "2730:9:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4d656d626572207072697a652069732030", - "id": 746, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2708:19:2", - "subdenomination": null, + "src": "2741:19:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_97626f200198080887d69a49d3fec46037b9a997c5301deb340b0b56faf379c3", "typeString": "literal_string \"Member prize is 0\"" @@ -1490,18 +1469,18 @@ "typeString": "literal_string \"Member prize is 0\"" } ], - "id": 742, + "id": 774, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2689:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2722:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 747, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -1509,26 +1488,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2689:39:2", + "src": "2722:39:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 780, "nodeType": "ExpressionStatement", - "src": "2689:39:2" + "src": "2722:39:2" }, { - "assignments": [750], + "assignments": [782], "declarations": [ { "constant": false, - "id": 750, + "id": 782, + "mutability": "mutable", "name": "expectedDistribution", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2739:28:2", + "scope": 871, + "src": "2772:28:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1536,44 +1517,40 @@ "typeString": "uint256" }, "typeName": { - "id": 749, + "id": 781, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2739:7:2", + "src": "2772:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 756, + "id": 788, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 753, + "id": 785, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "2783:5:2", + "referencedDeclaration": 768, + "src": "2816:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 754, + "id": 786, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "2790:22:2", + "referencedDeclaration": 695, + "src": "2823:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1592,33 +1569,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 751, + "id": 783, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "2770:8:2", + "referencedDeclaration": 3814, + "src": "2803:8:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeMath_$4215_$", + "typeIdentifier": "t_type$_t_contract$_SafeMath_$3814_$", "typeString": "type(library SafeMath)" } }, - "id": 752, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 4168, - "src": "2770:12:2", + "referencedDeclaration": 3727, + "src": "2803:12:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 755, + "id": 787, "isConstant": false, "isLValue": false, "isPure": false, @@ -1626,25 +1602,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2770:43:2", + "src": "2803:43:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2739:74:2" + "src": "2772:74:2" }, { - "assignments": [758], + "assignments": [790], "declarations": [ { "constant": false, - "id": 758, + "id": 790, + "mutability": "mutable", "name": "distributedPrize", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2823:24:2", + "scope": 871, + "src": "2856:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1652,40 +1630,39 @@ "typeString": "uint256" }, "typeName": { - "id": 757, + "id": 789, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2823:7:2", + "src": "2856:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 759, - "initialValue": null, + "id": 791, "nodeType": "VariableDeclarationStatement", - "src": "2823:24:2" + "src": "2856:24:2" }, { "body": { - "id": 802, + "id": 834, "nodeType": "Block", - "src": "2919:303:2", + "src": "2952:303:2", "statements": [ { - "assignments": [772], + "assignments": [804], "declarations": [ { "constant": false, - "id": 772, + "id": 804, + "mutability": "mutable", "name": "member", "nodeType": "VariableDeclaration", - "scope": 802, - "src": "2933:14:2", + "scope": 834, + "src": "2966:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1693,45 +1670,41 @@ "typeString": "address" }, "typeName": { - "id": 771, + "id": 803, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2933:7:2", + "src": "2966:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 776, + "id": 808, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 773, + "id": 805, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "2950:11:2", + "referencedDeclaration": 693, + "src": "2983:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 775, + "id": 807, "indexExpression": { - "argumentTypes": null, - "id": 774, + "id": 806, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2962:5:2", + "referencedDeclaration": 793, + "src": "2995:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1742,51 +1715,47 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2950:18:2", + "src": "2983:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2933:35:2" + "src": "2966:35:2" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 781, + "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 777, + "id": 809, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "3034:17:2", + "referencedDeclaration": 699, + "src": "3067:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 779, + "id": 811, "indexExpression": { - "argumentTypes": null, - "id": 778, + "id": 810, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3052:6:2", + "referencedDeclaration": 804, + "src": "3085:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1797,7 +1766,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3034:25:2", + "src": "3067:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1806,70 +1775,63 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "74727565", - "id": 780, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3063:4:2", - "subdenomination": null, + "src": "3096:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3034:33:2", + "src": "3067:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 801, + "id": 833, "nodeType": "IfStatement", - "src": "3030:182:2", + "src": "3063:182:2", "trueBody": { - "id": 800, + "id": 832, "nodeType": "Block", - "src": "3069:143:2", + "src": "3102:143:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 791, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 782, + "id": 814, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "3087:8:2", + "referencedDeclaration": 703, + "src": "3120:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 784, + "id": 816, "indexExpression": { - "argumentTypes": null, - "id": 783, + "id": 815, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3096:6:2", + "referencedDeclaration": 804, + "src": "3129:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1880,7 +1842,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3087:16:2", + "src": "3120:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1889,16 +1851,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 789, + "id": 821, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "3127:5:2", + "referencedDeclaration": 768, + "src": "3160:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1913,29 +1873,26 @@ } ], "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 785, + "id": 817, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "3106:8:2", + "referencedDeclaration": 703, + "src": "3139:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 787, + "id": 819, "indexExpression": { - "argumentTypes": null, - "id": 786, + "id": 818, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3115:6:2", + "referencedDeclaration": 804, + "src": "3148:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1946,27 +1903,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3106:16:2", + "src": "3139:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 788, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3106:20:2", + "referencedDeclaration": 3647, + "src": "3139:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 790, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -1974,38 +1931,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3106:27:2", + "src": "3139:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3087:46:2", + "src": "3120:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 792, + "id": 824, "nodeType": "ExpressionStatement", - "src": "3087:46:2" + "src": "3120:46:2" }, { "expression": { - "argumentTypes": null, - "id": 798, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 793, + "id": 825, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3151:16:2", + "referencedDeclaration": 790, + "src": "3184:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2014,16 +1970,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 796, + "id": 828, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "3191:5:2", + "referencedDeclaration": 768, + "src": "3224:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2038,33 +1992,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 794, + "id": 826, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3170:16:2", + "referencedDeclaration": 790, + "src": "3203:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 795, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3170:20:2", + "referencedDeclaration": 3647, + "src": "3203:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 797, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -2072,21 +2025,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3170:27:2", + "src": "3203:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3151:46:2", + "src": "3184:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 799, + "id": 831, "nodeType": "ExpressionStatement", - "src": "3151:46:2" + "src": "3184:46:2" } ] } @@ -2094,24 +2048,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 767, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 764, + "id": 796, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2882:5:2", + "referencedDeclaration": 793, + "src": "2915:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2120,51 +2072,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 765, + "id": 797, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "2890:11:2", + "referencedDeclaration": 693, + "src": "2923:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 766, + "id": 798, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2890:18:2", + "src": "2923:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2882:26:2", + "src": "2915:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 803, + "id": 835, "initializationExpression": { - "assignments": [761], + "assignments": [793], "declarations": [ { "constant": false, - "id": 761, + "id": 793, + "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "2863:13:2", + "scope": 835, + "src": "2896:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2172,32 +2122,29 @@ "typeString": "uint256" }, "typeName": { - "id": 760, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2863:7:2", + "src": "2896:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 763, + "id": 795, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 762, + "id": 794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2879:1:2", - "subdenomination": null, + "src": "2912:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2205,12 +2152,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2863:17:2" + "src": "2896:17:2" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 769, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -2218,15 +2164,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2910:7:2", + "src": "2943:7:2", "subExpression": { - "argumentTypes": null, - "id": 768, + "id": 800, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2910:5:2", + "referencedDeclaration": 793, + "src": "2943:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2237,29 +2182,27 @@ "typeString": "uint256" } }, - "id": 770, + "id": 802, "nodeType": "ExpressionStatement", - "src": "2910:7:2" + "src": "2943:7:2" }, "nodeType": "ForStatement", - "src": "2858:364:2" + "src": "2891:364:2" }, { "expression": { - "argumentTypes": null, - "id": 809, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 804, + "id": 836, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3307:15:2", + "referencedDeclaration": 705, + "src": "3340:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2268,16 +2211,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 807, + "id": 839, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3345:16:2", + "referencedDeclaration": 750, + "src": "3378:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2292,33 +2233,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 805, + "id": 837, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3325:15:2", + "referencedDeclaration": 705, + "src": "3358:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 806, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3325:19:2", + "referencedDeclaration": 3647, + "src": "3358:19:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 808, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -2326,45 +2266,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3325:37:2", + "src": "3358:37:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3307:55:2", + "src": "3340:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 810, + "id": 842, "nodeType": "ExpressionStatement", - "src": "3307:55:2" + "src": "3340:55:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 814, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 812, + "id": 844, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3772:16:2", + "referencedDeclaration": 790, + "src": "3805:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2373,36 +2311,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 813, + "id": 845, "name": "expectedDistribution", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "3792:20:2", + "referencedDeclaration": 782, + "src": "3825:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3772:40:2", + "src": "3805:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c69642073706c6974206265747765656e20616374697665206d656d62657273", - "id": 815, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3814:38:2", - "subdenomination": null, + "src": "3847:38:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3f76e1d08879ae23fd9e5bc3cf01743808f55698db9d915a253d9841f9e90780", "typeString": "literal_string \"Invalid split between active members\"" @@ -2421,18 +2356,18 @@ "typeString": "literal_string \"Invalid split between active members\"" } ], - "id": 811, + "id": 843, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3764:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3797:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 816, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -2440,46 +2375,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3764:89:2", + "src": "3797:89:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 817, + "id": 849, "nodeType": "ExpressionStatement", - "src": "3764:89:2" + "src": "3797:89:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 824, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 820, + "id": 853, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "3879:4:2", + "referencedDeclaration": 4294967268, + "src": "3912:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -2487,24 +2418,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 819, + "id": 852, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3871:7:2", + "src": "3904:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:2", + "typeDescriptions": {} + } }, - "id": 821, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -2512,21 +2449,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3871:13:2", + "src": "3904:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 822, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3871:21:2", + "src": "3904:21:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2535,36 +2472,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 823, + "id": 856, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3896:15:2", + "referencedDeclaration": 705, + "src": "3929:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3871:40:2", + "src": "3904:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "52657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79", - "id": 825, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3913:44:2", - "subdenomination": null, + "src": "3946:44:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_73d57ed3aa0a7727c22d333c46f033feecfbbbd61b6977ff3cd8f15b6ce10ad8", "typeString": "literal_string \"Reserved balanced was not updated properly\"" @@ -2583,18 +2517,18 @@ "typeString": "literal_string \"Reserved balanced was not updated properly\"" } ], - "id": 818, + "id": 850, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3863:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3896:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 826, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -2602,96 +2536,103 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3863:95:2", + "src": "3896:95:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 827, + "id": 860, "nodeType": "ExpressionStatement", - "src": "3863:95:2" + "src": "3896:95:2" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 829, + "id": 862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3984:3:2", + "referencedDeclaration": 4294967281, + "src": "4017:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 830, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3984:10:2", + "src": "4017:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 831, + "id": 864, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3996:16:2", + "referencedDeclaration": 750, + "src": "4029:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 832, + "id": 865, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "4014:22:2", + "referencedDeclaration": 695, + "src": "4047:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 833, + "id": 866, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "4038:5:2", + "referencedDeclaration": 768, + "src": "4071:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 834, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "4045:3:2", + "expression": { + "id": 867, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4078:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4078:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2721,18 +2662,18 @@ "typeString": "uint256" } ], - "id": 828, + "id": 861, "name": "PrizeSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "3973:10:2", + "referencedDeclaration": 727, + "src": "4006:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256,uint256,uint256)" } }, - "id": 835, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -2740,143 +2681,139 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3973:76:2", + "src": "4006:88:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 836, + "id": 870, "nodeType": "EmitStatement", - "src": "3968:81:2" + "src": "4001:93:2" } ] }, - "documentation": "@notice Splits the available's contract balance between active team members.\n@dev Implements the \"withdraw pattern\" by allocating balances to team \nmembers, so they can request a withdraw once the split is done.", - "id": 838, + "documentation": { + "id": 742, + "nodeType": "StructuredDocumentation", + "src": "2088:244:2", + "text": " @notice Splits the available's contract balance between active team members.\n @dev Implements the \"withdraw pattern\" by allocating balances to team \n members, so they can request a withdraw once the split is done." + }, + "functionSelector": "07057382", + "id": 872, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 714, + "id": 745, "modifierName": { - "argumentTypes": null, - "id": 713, + "id": 744, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "2335:12:2", + "referencedDeclaration": 3075, + "src": "2368:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2335:12:2" + "src": "2368:12:2" }, { - "arguments": null, - "id": 716, + "id": 747, "modifierName": { - "argumentTypes": null, - "id": 715, + "id": 746, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2348:13:2", + "referencedDeclaration": 2548, + "src": "2381:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2348:13:2" + "src": "2381:13:2" } ], "name": "splitPrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 712, + "id": 743, "nodeType": "ParameterList", "parameters": [], - "src": "2323:2:2" + "src": "2356:2:2" }, "returnParameters": { - "id": 717, + "id": 748, "nodeType": "ParameterList", "parameters": [], - "src": "2362:0:2" + "src": "2395:0:2" }, - "scope": 1066, - "src": "2304:1752:2", + "scope": 1114, + "src": "2337:1764:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 896, + "id": 932, "nodeType": "Block", - "src": "4419:468:2", + "src": "4464:480:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 849, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 844, + "id": 879, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4437:8:2", + "referencedDeclaration": 703, + "src": "4482:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 847, + "id": 882, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 845, + "id": 880, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4446:3:2", + "referencedDeclaration": 4294967281, + "src": "4491:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 846, + "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4446:10:2", + "src": "4491:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2887,7 +2824,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4437:20:2", + "src": "4482:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2896,36 +2833,33 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "argumentTypes": null, - "id": 848, + "id": 883, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4461:6:2", + "referencedDeclaration": 875, + "src": "4506:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4437:30:2", + "src": "4482:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682062616c616e6365", - "id": 850, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4469:20:2", - "subdenomination": null, + "src": "4514:20:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_62feb6dde0d8b91e793e4cfea2e07175444fe82cab5a2cd9e870981f43f4dbad", "typeString": "literal_string \"Not enough balance\"" @@ -2944,18 +2878,18 @@ "typeString": "literal_string \"Not enough balance\"" } ], - "id": 843, + "id": 878, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4429:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4474:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 851, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -2963,26 +2897,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4429:61:2", + "src": "4474:61:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 852, + "id": 887, "nodeType": "ExpressionStatement", - "src": "4429:61:2" + "src": "4474:61:2" }, { - "assignments": [854], + "assignments": [889], "declarations": [ { "constant": false, - "id": 854, + "id": 889, + "mutability": "mutable", "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 896, - "src": "4500:22:2", + "scope": 932, + "src": "4545:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2990,60 +2926,54 @@ "typeString": "uint256" }, "typeName": { - "id": 853, + "id": 888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4500:7:2", + "src": "4545:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 859, + "id": 894, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 855, + "id": 890, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4525:8:2", + "referencedDeclaration": 703, + "src": "4570:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 858, + "id": 893, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 856, + "id": 891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4534:3:2", + "referencedDeclaration": 4294967281, + "src": "4579:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 857, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4534:10:2", + "src": "4579:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3054,31 +2984,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4525:20:2", + "src": "4570:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4500:45:2" + "src": "4545:45:2" }, { "expression": { - "argumentTypes": null, - "id": 865, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 860, + "id": 895, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4555:14:2", + "referencedDeclaration": 889, + "src": "4600:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3087,16 +3015,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 863, + "id": 898, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4591:6:2", + "referencedDeclaration": 875, + "src": "4636:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3111,33 +3037,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 861, + "id": 896, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4572:14:2", + "referencedDeclaration": 889, + "src": "4617:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 862, + "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "4572:18:2", + "referencedDeclaration": 3664, + "src": "4617:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 864, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -3145,70 +3070,65 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4572:26:2", + "src": "4617:26:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4555:43:2", + "src": "4600:43:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 866, + "id": 901, "nodeType": "ExpressionStatement", - "src": "4555:43:2" + "src": "4600:43:2" }, { "expression": { - "argumentTypes": null, - "id": 872, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 867, + "id": 902, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4608:8:2", + "referencedDeclaration": 703, + "src": "4653:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 870, + "id": 905, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 868, + "id": 903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4617:3:2", + "referencedDeclaration": 4294967281, + "src": "4662:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 869, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4617:10:2", + "src": "4662:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3219,7 +3139,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4608:20:2", + "src": "4653:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3228,44 +3148,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 871, + "id": 906, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4631:14:2", + "referencedDeclaration": 889, + "src": "4676:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4608:37:2", + "src": "4653:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 873, + "id": 908, "nodeType": "ExpressionStatement", - "src": "4608:37:2" + "src": "4653:37:2" }, { "expression": { - "argumentTypes": null, - "id": 879, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 874, + "id": 909, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "4750:15:2", + "referencedDeclaration": 705, + "src": "4795:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3274,16 +3191,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 877, + "id": 912, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4788:6:2", + "referencedDeclaration": 875, + "src": "4833:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3298,33 +3213,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 875, + "id": 910, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "4768:15:2", + "referencedDeclaration": 705, + "src": "4813:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 876, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "4768:19:2", + "referencedDeclaration": 3664, + "src": "4813:19:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 878, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -3332,34 +3246,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4768:27:2", + "src": "4813:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4750:45:2", + "src": "4795:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 880, + "id": 915, "nodeType": "ExpressionStatement", - "src": "4750:45:2" + "src": "4795:45:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 886, + "id": 921, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4825:6:2", + "referencedDeclaration": 875, + "src": "4870:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3374,49 +3287,45 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 881, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4805:3:2", + "referencedDeclaration": 4294967281, + "src": "4850:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4805:10:2", + "src": "4850:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 885, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4805:19:2", + "src": "4850:19:2", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 887, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -3424,70 +3333,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4805:27:2", + "src": "4850:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 888, + "id": 923, "nodeType": "ExpressionStatement", - "src": "4805:27:2" + "src": "4850:27:2" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 890, + "id": 925, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4856:3:2", + "referencedDeclaration": 4294967281, + "src": "4901:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 891, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4856:10:2", + "src": "4901:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 892, + "id": 927, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4868:6:2", + "referencedDeclaration": 875, + "src": "4913:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 893, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "4876:3:2", + "expression": { + "id": 928, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4921:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4921:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3509,18 +3427,18 @@ "typeString": "uint256" } ], - "id": 889, + "id": 924, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "4847:8:2", + "referencedDeclaration": 714, + "src": "4892:8:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 894, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, @@ -3528,36 +3446,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4847:33:2", + "src": "4892:45:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 895, + "id": 931, "nodeType": "EmitStatement", - "src": "4842:38:2" + "src": "4887:50:2" } ] }, - "documentation": "@notice Allows a team member to withdraw its funds from the contract.\n@dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\nThe method is public, so inactive members (that renounced membership)\nare still able to withdraw funds in case balance > 0. ", - "id": 897, + "documentation": { + "id": 873, + "nodeType": "StructuredDocumentation", + "src": "4107:309:2", + "text": " @notice Allows a team member to withdraw its funds from the contract.\n @dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\n The method is public, so inactive members (that renounced membership)\n are still able to withdraw funds in case balance > 0. " + }, + "functionSelector": "2e1a7d4d", + "id": 933, "implemented": true, "kind": "function", "modifiers": [], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 841, + "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 840, + "id": 875, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4394:14:2", + "scope": 933, + "src": "4439:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3565,62 +3491,58 @@ "typeString": "uint256" }, "typeName": { - "id": 839, + "id": 874, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4394:7:2", + "src": "4439:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "4393:16:2" + "src": "4438:16:2" }, "returnParameters": { - "id": 842, + "id": 877, "nodeType": "ParameterList", "parameters": [], - "src": "4419:0:2" + "src": "4464:0:2" }, - "scope": 1066, - "src": "4376:511:2", + "scope": 1114, + "src": "4421:523:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 954, + "id": 992, "nodeType": "Block", - "src": "5095:531:2", + "src": "5152:531:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 907, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 904, + "id": 941, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5113:22:2", + "referencedDeclaration": 695, + "src": "5170:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3629,35 +3551,32 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 905, + "id": 942, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5139:11:2", + "referencedDeclaration": 693, + "src": "5196:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 906, + "id": 943, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5139:18:2", + "src": "5196:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5113:44:2", + "src": "5170:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3671,18 +3590,18 @@ "typeString": "bool" } ], - "id": 903, + "id": 940, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4233, - "src": "5105:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5162:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 908, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -3690,26 +3609,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:53:2", + "src": "5162:53:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 909, + "id": 946, "nodeType": "ExpressionStatement", - "src": "5105:53:2" + "src": "5162:53:2" }, { - "assignments": [913], + "assignments": [951], "declarations": [ { "constant": false, - "id": 913, + "id": 951, + "mutability": "mutable", "name": "activeMembers", "nodeType": "VariableDeclaration", - "scope": 954, - "src": "5168:30:2", + "scope": 992, + "src": "5225:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3718,40 +3639,36 @@ }, "typeName": { "baseType": { - "id": 911, + "id": 949, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5168:7:2", + "src": "5225:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 912, - "length": null, + "id": 950, "nodeType": "ArrayTypeName", - "src": "5168:9:2", + "src": "5225:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "id": 919, + "id": 957, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 917, + "id": 955, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5215:22:2", + "referencedDeclaration": 695, + "src": "5272:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3765,40 +3682,39 @@ "typeString": "uint256" } ], - "id": 916, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5201:13:2", + "src": "5258:13:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 914, + "id": 952, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5205:7:2", + "src": "5262:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 915, - "length": null, + "id": 953, "nodeType": "ArrayTypeName", - "src": "5205:9:2", + "src": "5262:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 918, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -3806,31 +3722,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5201:37:2", + "src": "5258:37:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5168:70:2" + "src": "5225:70:2" }, { "body": { - "id": 950, + "id": 988, "nodeType": "Block", - "src": "5416:174:2", + "src": "5473:174:2", "statements": [ { - "assignments": [932], + "assignments": [970], "declarations": [ { "constant": false, - "id": 932, + "id": 970, + "mutability": "mutable", "name": "member", "nodeType": "VariableDeclaration", - "scope": 950, - "src": "5430:14:2", + "scope": 988, + "src": "5487:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3838,45 +3756,41 @@ "typeString": "address" }, "typeName": { - "id": 931, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5430:7:2", + "src": "5487:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 936, + "id": 974, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 933, + "id": 971, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5447:11:2", + "referencedDeclaration": 693, + "src": "5504:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 935, + "id": 973, "indexExpression": { - "argumentTypes": null, - "id": 934, + "id": 972, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5459:5:2", + "referencedDeclaration": 959, + "src": "5516:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3887,51 +3801,47 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5447:18:2", + "src": "5504:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5430:35:2" + "src": "5487:35:2" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 941, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 937, + "id": 975, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "5483:17:2", + "referencedDeclaration": 699, + "src": "5540:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 939, + "id": 977, "indexExpression": { - "argumentTypes": null, - "id": 938, + "id": 976, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "5501:6:2", + "referencedDeclaration": 970, + "src": "5558:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3942,7 +3852,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5483:25:2", + "src": "5540:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3951,70 +3861,63 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "74727565", - "id": 940, + "id": 978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5512:4:2", - "subdenomination": null, + "src": "5569:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5483:33:2", + "src": "5540:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 949, + "id": 987, "nodeType": "IfStatement", - "src": "5479:101:2", + "src": "5536:101:2", "trueBody": { - "id": 948, + "id": 986, "nodeType": "Block", - "src": "5518:62:2", + "src": "5575:62:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 946, + "id": 984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 942, + "id": 980, "name": "activeMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "5536:13:2", + "referencedDeclaration": 951, + "src": "5593:13:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 944, + "id": 982, "indexExpression": { - "argumentTypes": null, - "id": 943, + "id": 981, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5550:5:2", + "referencedDeclaration": 959, + "src": "5607:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4025,7 +3928,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5536:20:2", + "src": "5593:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4034,27 +3937,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 945, + "id": 983, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "5559:6:2", + "referencedDeclaration": 970, + "src": "5616:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5536:29:2", + "src": "5593:29:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 947, + "id": 985, "nodeType": "ExpressionStatement", - "src": "5536:29:2" + "src": "5593:29:2" } ] } @@ -4062,24 +3964,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 927, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 924, + "id": 962, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5379:5:2", + "referencedDeclaration": 959, + "src": "5436:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4088,51 +3988,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 925, + "id": 963, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5387:11:2", + "referencedDeclaration": 693, + "src": "5444:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 926, + "id": 964, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5387:18:2", + "src": "5444:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5379:26:2", + "src": "5436:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 951, + "id": 989, "initializationExpression": { - "assignments": [921], + "assignments": [959], "declarations": [ { "constant": false, - "id": 921, + "id": 959, + "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", - "scope": 951, - "src": "5360:13:2", + "scope": 989, + "src": "5417:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4140,32 +4038,29 @@ "typeString": "uint256" }, "typeName": { - "id": 920, + "id": 958, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5360:7:2", + "src": "5417:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 923, + "id": 961, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5376:1:2", - "subdenomination": null, + "src": "5433:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4173,12 +4068,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5360:17:2" + "src": "5417:17:2" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 929, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -4186,15 +4080,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5407:7:2", + "src": "5464:7:2", "subExpression": { - "argumentTypes": null, - "id": 928, + "id": 966, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5407:5:2", + "referencedDeclaration": 959, + "src": "5464:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4205,58 +4098,64 @@ "typeString": "uint256" } }, - "id": 930, + "id": 968, "nodeType": "ExpressionStatement", - "src": "5407:7:2" + "src": "5464:7:2" }, "nodeType": "ForStatement", - "src": "5355:235:2" + "src": "5412:235:2" }, { "expression": { - "argumentTypes": null, - "id": 952, + "id": 990, "name": "activeMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "5606:13:2", + "referencedDeclaration": 951, + "src": "5663:13:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 902, - "id": 953, + "functionReturnParameters": 939, + "id": 991, "nodeType": "Return", - "src": "5599:20:2" + "src": "5656:20:2" } ] }, - "documentation": "@notice Gets the active members in the team.\n @return An array of addresses representing the accounts of active members", - "id": 955, + "documentation": { + "id": 934, + "nodeType": "StructuredDocumentation", + "src": "4950:130:2", + "text": "@notice Gets the active members in the team.\n @return An array of addresses representing the accounts of active members" + }, + "functionSelector": "4876aebc", + "id": 993, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveMembers", "nodeType": "FunctionDefinition", "parameters": { - "id": 898, + "id": 935, "nodeType": "ParameterList", "parameters": [], - "src": "5053:2:2" + "src": "5110:2:2" }, "returnParameters": { - "id": 902, + "id": 939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 901, + "id": 938, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "5077:16:2", + "scope": 993, + "src": "5134:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4265,88 +4164,92 @@ }, "typeName": { "baseType": { - "id": 899, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5077:7:2", + "src": "5134:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 900, - "length": null, + "id": 937, "nodeType": "ArrayTypeName", - "src": "5077:9:2", + "src": "5134:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "5076:18:2" + "src": "5133:18:2" }, - "scope": 1066, - "src": "5028:598:2", + "scope": 1114, + "src": "5085:598:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 962, + "id": 1001, "nodeType": "Block", - "src": "5803:46:2", + "src": "5860:46:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 960, + "id": 999, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5820:22:2", + "referencedDeclaration": 695, + "src": "5877:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 959, - "id": 961, + "functionReturnParameters": 998, + "id": 1000, "nodeType": "Return", - "src": "5813:29:2" + "src": "5870:29:2" } ] }, - "documentation": "@notice Gets the number of active team members.\n @return {uint256} Count of active members", - "id": 963, + "documentation": { + "id": 994, + "nodeType": "StructuredDocumentation", + "src": "5689:101:2", + "text": "@notice Gets the number of active team members.\n @return {uint256} Count of active members" + }, + "functionSelector": "8f7c8519", + "id": 1002, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveMembersCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 956, + "id": 995, "nodeType": "ParameterList", "parameters": [], - "src": "5768:2:2" + "src": "5825:2:2" }, "returnParameters": { - "id": 959, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 997, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 963, - "src": "5794:7:2", + "scope": 1002, + "src": "5851:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4354,74 +4257,68 @@ "typeString": "uint256" }, "typeName": { - "id": 957, + "id": 996, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5794:7:2", + "src": "5851:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "5793:9:2" + "src": "5850:9:2" }, - "scope": 1066, - "src": "5738:111:2", + "scope": 1114, + "src": "5795:111:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 975, + "id": 1015, "nodeType": "Block", - "src": "6013:44:2", + "src": "6070:44:2", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 970, + "id": 1010, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "6030:8:2", + "referencedDeclaration": 703, + "src": "6087:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 973, + "id": 1013, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 971, + "id": 1011, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "6039:3:2", + "referencedDeclaration": 4294967281, + "src": "6096:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 972, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6039:10:2", + "src": "6096:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4432,63 +4329,68 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6030:20:2", + "src": "6087:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 969, - "id": 974, + "functionReturnParameters": 1009, + "id": 1014, "nodeType": "Return", - "src": "6023:27:2" + "src": "6080:27:2" } ] }, - "documentation": "@notice Get the balance of a team member\n @return The balance of a team member", - "id": 976, + "documentation": { + "id": 1003, + "nodeType": "StructuredDocumentation", + "src": "5912:89:2", + "text": "@notice Get the balance of a team member\n @return The balance of a team member" + }, + "functionSelector": "722713f7", + "id": 1016, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 966, + "id": 1006, "modifierName": { - "argumentTypes": null, - "id": 965, + "id": 1005, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "5982:12:2", + "referencedDeclaration": 3075, + "src": "6039:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5982:12:2" + "src": "6039:12:2" } ], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 964, + "id": 1004, "nodeType": "ParameterList", "parameters": [], - "src": "5967:2:2" + "src": "6024:2:2" }, "returnParameters": { - "id": 969, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 968, + "id": 1008, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 976, - "src": "6004:7:2", + "scope": 1016, + "src": "6061:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4496,67 +4398,65 @@ "typeString": "uint256" }, "typeName": { - "id": 967, + "id": 1007, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6004:7:2", + "src": "6061:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "6003:9:2" + "src": "6060:9:2" }, - "scope": 1066, - "src": "5949:108:2", + "scope": 1114, + "src": "6006:108:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2566], "body": { - "id": 986, + "id": 1028, "nodeType": "Block", - "src": "6228:30:2", + "src": "6294:30:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 981, + "id": 1023, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6238:5:2", + "referencedDeclaration": 4294967271, + "src": "6304:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 983, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pause", "nodeType": "MemberAccess", - "referencedDeclaration": 2461, - "src": "6238:11:2", + "referencedDeclaration": 2566, + "src": "6304:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 984, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,103 +4464,113 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6238:13:2", + "src": "6304:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 985, + "id": 1027, "nodeType": "ExpressionStatement", - "src": "6238:13:2" + "src": "6304:13:2" } ] }, - "documentation": "@notice Trigger the paused state.\n@dev Implements the onlyAttendee modifier for access control.", - "id": 987, + "documentation": { + "id": 1017, + "nodeType": "StructuredDocumentation", + "src": "6120:123:2", + "text": "@notice Trigger the paused state.\n@dev Implements the onlyAttendee modifier for access control." + }, + "functionSelector": "8456cb59", + "id": 1029, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 979, + "id": 1021, "modifierName": { - "argumentTypes": null, - "id": 978, + "id": 1020, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "6215:12:2", + "referencedDeclaration": 3075, + "src": "6281:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6215:12:2" + "src": "6281:12:2" } ], "name": "pause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1019, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6272:8:2" + }, "parameters": { - "id": 977, + "id": 1018, "nodeType": "ParameterList", "parameters": [], - "src": "6205:2:2" + "src": "6262:2:2" }, "returnParameters": { - "id": 980, + "id": 1022, "nodeType": "ParameterList", "parameters": [], - "src": "6228:0:2" + "src": "6294:0:2" }, - "scope": 1066, - "src": "6191:67:2", + "scope": 1114, + "src": "6248:76:2", "stateMutability": "nonpayable", - "superFunction": 2461, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2574], "body": { - "id": 997, + "id": 1041, "nodeType": "Block", - "src": "6429:32:2", + "src": "6504:32:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 992, + "id": 1036, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6439:5:2", + "referencedDeclaration": 4294967271, + "src": "6514:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 994, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "unpause", "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "6439:13:2", + "referencedDeclaration": 2574, + "src": "6514:13:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 995, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -4668,81 +4578,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6439:15:2", + "src": "6514:15:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "6439:15:2" + "src": "6514:15:2" } ] }, - "documentation": "@notice Lifts the paused state.\n@dev Implements the onlyAttendee modifier for access control.", - "id": 998, + "documentation": { + "id": 1030, + "nodeType": "StructuredDocumentation", + "src": "6330:121:2", + "text": "@notice Lifts the paused state.\n@dev Implements the onlyAttendee modifier for access control." + }, + "functionSelector": "3f4ba83a", + "id": 1042, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 990, + "id": 1034, "modifierName": { - "argumentTypes": null, - "id": 989, + "id": 1033, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "6416:12:2", + "referencedDeclaration": 3075, + "src": "6491:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6416:12:2" + "src": "6491:12:2" } ], "name": "unpause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1032, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6482:8:2" + }, "parameters": { - "id": 988, + "id": 1031, "nodeType": "ParameterList", "parameters": [], - "src": "6406:2:2" + "src": "6472:2:2" }, "returnParameters": { - "id": 991, + "id": 1035, "nodeType": "ParameterList", "parameters": [], - "src": "6429:0:2" + "src": "6504:0:2" }, - "scope": 1066, - "src": "6390:71:2", + "scope": 1114, + "src": "6456:80:2", "stateMutability": "nonpayable", - "superFunction": 2468, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3125], "body": { - "id": 1030, + "id": 1076, "nodeType": "Block", - "src": "6645:186:2", + "src": "6729:186:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1008, + "id": 1054, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6674:7:2", + "referencedDeclaration": 1045, + "src": "6758:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4757,33 +4677,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1005, + "id": 1051, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6655:5:2", + "referencedDeclaration": 4294967271, + "src": "6739:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 1007, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3000, - "src": "6655:18:2", + "referencedDeclaration": 3125, + "src": "6739:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1009, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -4791,28 +4710,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6655:27:2", + "src": "6739:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1010, + "id": 1056, "nodeType": "ExpressionStatement", - "src": "6655:27:2" + "src": "6739:27:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1014, + "id": 1060, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6709:7:2", + "referencedDeclaration": 1045, + "src": "6793:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4827,33 +4745,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 1011, + "id": 1057, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "6692:11:2", + "referencedDeclaration": 693, + "src": "6776:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1013, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6692:16:2", + "src": "6776:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 1015, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,48 +4777,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6692:25:2", + "src": "6776:25:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1016, + "id": 1062, "nodeType": "ExpressionStatement", - "src": "6692:25:2" + "src": "6776:25:2" }, { "expression": { - "argumentTypes": null, - "id": 1021, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1017, + "id": 1063, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "6727:17:2", + "referencedDeclaration": 699, + "src": "6811:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1019, + "id": 1065, "indexExpression": { - "argumentTypes": null, - "id": 1018, + "id": 1064, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6745:7:2", + "referencedDeclaration": 1045, + "src": "6829:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4913,7 +4826,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6727:26:2", + "src": "6811:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4922,49 +4835,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1020, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6756:4:2", - "subdenomination": null, + "src": "6840:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6727:33:2", + "src": "6811:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1022, + "id": 1068, "nodeType": "ExpressionStatement", - "src": "6727:33:2" + "src": "6811:33:2" }, { "expression": { - "argumentTypes": null, - "id": 1028, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1023, + "id": 1069, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "6770:22:2", + "referencedDeclaration": 695, + "src": "6854:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4973,20 +4882,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1026, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6822:1:2", - "subdenomination": null, + "src": "6906:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -5002,33 +4908,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1024, + "id": 1070, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "6795:22:2", + "referencedDeclaration": 695, + "src": "6879:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1025, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "6795:26:2", + "referencedDeclaration": 3647, + "src": "6879:26:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1027, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -5036,62 +4941,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6795:29:2", + "src": "6879:29:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6770:54:2", + "src": "6854:54:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1029, + "id": 1075, "nodeType": "ExpressionStatement", - "src": "6770:54:2" + "src": "6854:54:2" } ] }, - "documentation": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.", - "id": 1031, + "documentation": { + "id": 1043, + "nodeType": "StructuredDocumentation", + "src": "6542:111:2", + "text": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members." + }, + "id": 1077, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1003, + "id": 1049, "modifierName": { - "argumentTypes": null, - "id": 1002, + "id": 1048, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "6631:13:2", + "referencedDeclaration": 2548, + "src": "6715:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6631:13:2" + "src": "6715:13:2" } ], "name": "_addAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1047, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6706:8:2" + }, "parameters": { - "id": 1001, + "id": 1046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1000, + "id": 1045, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1031, - "src": "6605:15:2", + "scope": 1077, + "src": "6680:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5099,63 +5015,60 @@ "typeString": "address" }, "typeName": { - "id": 999, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6605:7:2", + "src": "6680:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "6604:17:2" + "src": "6679:17:2" }, "returnParameters": { - "id": 1004, + "id": 1050, "nodeType": "ParameterList", "parameters": [], - "src": "6645:0:2" + "src": "6729:0:2" }, - "scope": 1066, - "src": "6583:248:2", + "scope": 1114, + "src": "6658:257:2", "stateMutability": "nonpayable", - "superFunction": 3000, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3141], "body": { - "id": 1064, + "id": 1112, "nodeType": "Block", - "src": "7018:309:2", + "src": "7111:309:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1041, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1039, + "id": 1087, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7102:22:2", + "referencedDeclaration": 695, + "src": "7195:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5164,41 +5077,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "31", - "id": 1040, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7127:1:2", - "subdenomination": null, + "src": "7220:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7102:26:2", + "src": "7195:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374", - "id": 1042, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7130:41:2", - "subdenomination": null, + "src": "7223:41:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e70de562d66488b40c0ae70fc4448393de49a3e4c3d60e9b1648bb881bcf7681", "typeString": "literal_string \"Cannot remove last member from contract\"" @@ -5217,18 +5126,18 @@ "typeString": "literal_string \"Cannot remove last member from contract\"" } ], - "id": 1038, + "id": 1086, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "7094:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "7187:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1043, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, @@ -5236,28 +5145,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7094:78:2", + "src": "7187:78:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1044, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "7094:78:2" + "src": "7187:78:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1048, + "id": 1096, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7204:7:2", + "referencedDeclaration": 1080, + "src": "7297:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5272,33 +5180,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1045, + "id": 1093, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "7182:5:2", + "referencedDeclaration": 4294967271, + "src": "7275:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 1047, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3016, - "src": "7182:21:2", + "referencedDeclaration": 3141, + "src": "7275:21:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1049, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -5306,48 +5213,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7182:30:2", + "src": "7275:30:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1050, + "id": 1098, "nodeType": "ExpressionStatement", - "src": "7182:30:2" + "src": "7275:30:2" }, { "expression": { - "argumentTypes": null, - "id": 1055, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1051, + "id": 1099, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "7222:17:2", + "referencedDeclaration": 699, + "src": "7315:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1053, + "id": 1101, "indexExpression": { - "argumentTypes": null, - "id": 1052, + "id": 1100, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7240:7:2", + "referencedDeclaration": 1080, + "src": "7333:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5358,7 +5262,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7222:26:2", + "src": "7315:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5367,49 +5271,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1054, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7251:5:2", - "subdenomination": null, + "src": "7344:5:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "7222:34:2", + "src": "7315:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1056, + "id": 1104, "nodeType": "ExpressionStatement", - "src": "7222:34:2" + "src": "7315:34:2" }, { "expression": { - "argumentTypes": null, - "id": 1062, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1057, + "id": 1105, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7266:22:2", + "referencedDeclaration": 695, + "src": "7359:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5418,20 +5318,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1060, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7318:1:2", - "subdenomination": null, + "src": "7411:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -5447,33 +5344,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1058, + "id": 1106, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7291:22:2", + "referencedDeclaration": 695, + "src": "7384:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1059, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "7291:26:2", + "referencedDeclaration": 3664, + "src": "7384:26:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1061, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -5481,62 +5377,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7291:29:2", + "src": "7384:29:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7266:54:2", + "src": "7359:54:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1063, + "id": 1111, "nodeType": "ExpressionStatement", - "src": "7266:54:2" + "src": "7359:54:2" } ] }, - "documentation": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.", - "id": 1065, + "documentation": { + "id": 1078, + "nodeType": "StructuredDocumentation", + "src": "6921:111:2", + "text": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members." + }, + "id": 1113, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1036, + "id": 1084, "modifierName": { - "argumentTypes": null, - "id": 1035, + "id": 1083, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "7004:13:2", + "referencedDeclaration": 2548, + "src": "7097:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7004:13:2" + "src": "7097:13:2" } ], "name": "_removeAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1082, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7088:8:2" + }, "parameters": { - "id": 1034, + "id": 1081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1033, + "id": 1080, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1065, - "src": "6978:15:2", + "scope": 1113, + "src": "7062:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5544,186 +5451,191 @@ "typeString": "address" }, "typeName": { - "id": 1032, + "id": 1079, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6978:7:2", + "src": "7062:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "6977:17:2" + "src": "7061:17:2" }, "returnParameters": { - "id": 1037, + "id": 1085, "nodeType": "ParameterList", "parameters": [], - "src": "7018:0:2" + "src": "7111:0:2" }, - "scope": 1066, - "src": "6953:374:2", + "scope": 1114, + "src": "7037:383:2", "stateMutability": "nonpayable", - "superFunction": 3016, + "virtual": false, "visibility": "internal" } ], - "scope": 1067, - "src": "868:6461:2" + "scope": 1115, + "src": "908:6514:2" } ], - "src": "0:7330:2" + "src": "40:7383:2" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "exportedSymbols": { - "ContestTeam": [1066] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 1067, + "id": 1115, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 650, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 676, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "40:31:2" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 651, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 677, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 4216, - "src": "25:59:2", + "scope": 1115, + "sourceUnit": 3815, + "src": "73:51:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol", "file": "../roles/AttendeeRole.sol", - "id": 652, + "id": 678, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 3018, - "src": "85:35:2", + "scope": 1115, + "sourceUnit": 3143, + "src": "125:35:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "file": "../payment/Payable.sol", - "id": 653, + "id": 679, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 2904, - "src": "121:32:2", + "scope": 1115, + "sourceUnit": 3027, + "src": "161:32:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "file": "../lifecycle/Pausable.sol", - "id": 654, + "id": 680, "nodeType": "ImportDirective", - "scope": 1067, - "sourceUnit": 2500, - "src": "154:35:2", + "scope": 1115, + "sourceUnit": 2608, + "src": "194:35:2", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 655, + "id": 682, "name": "Payable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2903, - "src": "892:7:2", + "referencedDeclaration": 3026, + "src": "932:7:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Payable_$2903", + "typeIdentifier": "t_contract$_Payable_$3026", "typeString": "contract Payable" } }, - "id": 656, + "id": 683, "nodeType": "InheritanceSpecifier", - "src": "892:7:2" + "src": "932:7:2" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 657, + "id": 684, "name": "AttendeeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3017, - "src": "901:12:2", + "referencedDeclaration": 3142, + "src": "941:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AttendeeRole_$3017", + "typeIdentifier": "t_contract$_AttendeeRole_$3142", "typeString": "contract AttendeeRole" } }, - "id": 658, + "id": 685, "nodeType": "InheritanceSpecifier", - "src": "901:12:2" + "src": "941:12:2" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 659, + "id": 686, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2499, - "src": "915:8:2", + "referencedDeclaration": 2607, + "src": "955:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$2499", + "typeIdentifier": "t_contract$_Pausable_$2607", "typeString": "contract Pausable" } }, - "id": 660, + "id": 687, "nodeType": "InheritanceSpecifier", - "src": "915:8:2" + "src": "955:8:2" } ], - "contractDependencies": [2499, 2869, 2903, 3017], + "contractDependencies": [2607, 2987, 3026, 3142], "contractKind": "contract", - "documentation": "@notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n@dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\naccounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\nfunction.\nFuture improvements:\nTODO: implement multisig to close the contract for new members.\nTODO: implement multisig to destroy the contract.\nTODO: implement multisig to remove members.\nTODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.", + "documentation": { + "id": 681, + "nodeType": "StructuredDocumentation", + "src": "231:676:2", + "text": " @notice Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.\n @dev This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the\n accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw}\n function.\n Future improvements:\n TODO: implement multisig to close the contract for new members.\n TODO: implement multisig to destroy the contract.\n TODO: implement multisig to remove members.\n TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}." + }, "fullyImplemented": true, - "id": 1066, - "linearizedBaseContracts": [1066, 2499, 3017, 2903, 2869], + "id": 1114, + "linearizedBaseContracts": [1114, 2607, 3142, 3026, 2987], "name": "ContestTeam", "nodeType": "ContractDefinition", "nodes": [ { - "id": 663, + "id": 690, "libraryName": { - "contractScope": null, - "id": 661, + "id": 688, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "936:8:2", + "referencedDeclaration": 3814, + "src": "976:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "930:27:2", + "src": "970:27:2", "typeName": { - "id": 662, + "id": 689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "949:7:2", + "src": "989:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5732,11 +5644,12 @@ }, { "constant": false, - "id": 666, + "id": 693, + "mutability": "mutable", "name": "teamMembers", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "963:30:2", + "scope": 1114, + "src": "1003:30:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5745,35 +5658,34 @@ }, "typeName": { "baseType": { - "id": 664, + "id": 691, "name": "address", "nodeType": "ElementaryTypeName", - "src": "963:7:2", + "src": "1003:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 665, - "length": null, + "id": 692, "nodeType": "ArrayTypeName", - "src": "963:9:2", + "src": "1003:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 668, + "id": 695, + "mutability": "mutable", "name": "activeTeamMembersCount", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1018:39:2", + "scope": 1114, + "src": "1058:39:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5781,25 +5693,25 @@ "typeString": "uint256" }, "typeName": { - "id": 667, + "id": 694, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1018:7:2", + "src": "1058:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 672, + "id": 699, + "mutability": "mutable", "name": "activeTeamMembers", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1114:51:2", + "scope": 1114, + "src": "1154:51:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5807,44 +5719,44 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 671, + "id": 698, "keyType": { - "id": 669, + "id": 696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1122:7:2", + "src": "1162:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1114:24:2", + "src": "1154:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 670, + "id": 697, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1133:4:2", + "src": "1173:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 676, + "id": 703, + "mutability": "mutable", "name": "balances", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1198:45:2", + "scope": 1114, + "src": "1238:45:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5852,44 +5764,44 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 675, + "id": 702, "keyType": { - "id": 673, + "id": 700, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1206:7:2", + "src": "1246:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1198:27:2", + "src": "1238:27:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 674, + "id": 701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1217:7:2", + "src": "1257:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 678, + "id": 705, + "mutability": "mutable", "name": "reservedBalance", "nodeType": "VariableDeclaration", - "scope": 1066, - "src": "1280:32:2", + "scope": 1114, + "src": "1320:32:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5897,36 +5809,41 @@ "typeString": "uint256" }, "typeName": { - "id": 677, + "id": 704, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1280:7:2", + "src": "1320:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@notice emitted when a member withdraws from the contract.", - "id": 686, + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "1413:62:2", + "text": "@notice emitted when a member withdraws from the contract." + }, + "id": 714, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { - "id": 685, + "id": 713, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 680, + "id": 708, "indexed": true, + "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1455:18:2", + "scope": 714, + "src": "1495:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5934,27 +5851,27 @@ "typeString": "address" }, "typeName": { - "id": 679, + "id": 707, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1455:7:2", + "src": "1495:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 682, + "id": 710, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1475:14:2", + "scope": 714, + "src": "1515:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5962,26 +5879,26 @@ "typeString": "uint256" }, "typeName": { - "id": 681, + "id": 709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1475:7:2", + "src": "1515:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 684, + "id": 712, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "1491:24:2", + "scope": 714, + "src": "1531:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5989,41 +5906,46 @@ "typeString": "uint256" }, "typeName": { - "id": 683, + "id": 711, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1491:7:2", + "src": "1531:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1454:62:2" + "src": "1494:62:2" }, - "src": "1440:77:2" + "src": "1480:77:2" }, { "anonymous": false, - "documentation": "@notice emitted when the contract's balance (prize) is split between active members.", - "id": 698, + "documentation": { + "id": 715, + "nodeType": "StructuredDocumentation", + "src": "1562:88:2", + "text": "@notice emitted when the contract's balance (prize) is split between active members." + }, + "id": 727, "name": "PrizeSplit", "nodeType": "EventDefinition", "parameters": { - "id": 697, + "id": 726, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 717, "indexed": true, + "mutability": "mutable", "name": "sender", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1641:22:2", + "scope": 727, + "src": "1681:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6031,27 +5953,27 @@ "typeString": "address" }, "typeName": { - "id": 687, + "id": 716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1641:7:2", + "src": "1681:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 690, + "id": 719, "indexed": false, + "mutability": "mutable", "name": "totalPrize", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1673:18:2", + "scope": 727, + "src": "1713:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6059,26 +5981,26 @@ "typeString": "uint256" }, "typeName": { - "id": 689, + "id": 718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1673:7:2", + "src": "1713:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 692, + "id": 721, "indexed": false, + "mutability": "mutable", "name": "membersCount", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1701:20:2", + "scope": 727, + "src": "1741:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6086,26 +6008,26 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1701:7:2", + "src": "1741:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 694, + "id": 723, "indexed": false, + "mutability": "mutable", "name": "memberPrize", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1731:19:2", + "scope": 727, + "src": "1771:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6113,26 +6035,26 @@ "typeString": "uint256" }, "typeName": { - "id": 693, + "id": 722, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1731:7:2", + "src": "1771:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 696, + "id": 725, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 698, - "src": "1760:24:2", + "scope": 727, + "src": "1800:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6140,120 +6062,121 @@ "typeString": "uint256" }, "typeName": { - "id": 695, + "id": 724, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1760:7:2", + "src": "1800:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1631:159:2" + "src": "1671:159:2" }, - "src": "1615:176:2" + "src": "1655:176:2" }, { "body": { - "id": 710, + "id": 740, "nodeType": "Block", - "src": "2047:2:2", + "src": "2080:2:2", "statements": [] }, - "documentation": "@dev This class needs to be inherited - internal visibility\n @param initialAttendee Represents the attendee who owns the contest, initially.", - "id": 711, + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "1837:150:2", + "text": "@dev This class needs to be inherited - internal visibility\n @param initialAttendee Represents the attendee who owns the contest, initially." + }, + "id": 741, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 703, + "id": 733, "modifierName": { - "argumentTypes": null, - "id": 702, + "id": 732, "name": "Payable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2903, - "src": "1996:7:2", + "referencedDeclaration": 3026, + "src": "2029:7:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Payable_$2903_$", + "typeIdentifier": "t_type$_t_contract$_Payable_$3026_$", "typeString": "type(contract Payable)" } }, "nodeType": "ModifierInvocation", - "src": "1996:9:2" + "src": "2029:9:2" }, { "arguments": [ { - "argumentTypes": null, - "id": 705, + "id": 735, "name": "initialAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "2019:15:2", + "referencedDeclaration": 730, + "src": "2052:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 706, + "id": 736, "modifierName": { - "argumentTypes": null, - "id": 704, + "id": 734, "name": "AttendeeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3017, - "src": "2006:12:2", + "referencedDeclaration": 3142, + "src": "2039:12:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3017_$", + "typeIdentifier": "t_type$_t_contract$_AttendeeRole_$3142_$", "typeString": "type(contract AttendeeRole)" } }, "nodeType": "ModifierInvocation", - "src": "2006:29:2" + "src": "2039:29:2" }, { "arguments": [], - "id": 708, + "id": 738, "modifierName": { - "argumentTypes": null, - "id": 707, + "id": 737, "name": "Pausable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2036:8:2", + "referencedDeclaration": 2607, + "src": "2069:8:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pausable_$2499_$", + "typeIdentifier": "t_type$_t_contract$_Pausable_$2607_$", "typeString": "type(contract Pausable)" } }, "nodeType": "ModifierInvocation", - "src": "2036:10:2" + "src": "2069:10:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 701, + "id": 731, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 700, + "id": 730, + "mutability": "mutable", "name": "initialAttendee", "nodeType": "VariableDeclaration", - "scope": 711, - "src": "1964:23:2", + "scope": 741, + "src": "2004:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6261,50 +6184,50 @@ "typeString": "address" }, "typeName": { - "id": 699, + "id": 729, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1964:7:2", + "src": "2004:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1963:25:2" + "src": "2003:25:2" }, "returnParameters": { - "id": 709, + "id": 739, "nodeType": "ParameterList", "parameters": [], - "src": "2047:0:2" + "src": "2080:0:2" }, - "scope": 1066, - "src": "1952:97:2", + "scope": 1114, + "src": "1992:90:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 837, + "id": 871, "nodeType": "Block", - "src": "2362:1694:2", + "src": "2395:1706:2", "statements": [ { - "assignments": [719], + "assignments": [750], "declarations": [ { "constant": false, - "id": 719, + "id": 750, + "mutability": "mutable", "name": "availableBalance", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2469:24:2", + "scope": 871, + "src": "2502:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6312,31 +6235,28 @@ "typeString": "uint256" }, "typeName": { - "id": 718, + "id": 749, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2469:7:2", + "src": "2502:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 727, + "id": 759, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 725, + "id": 757, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "2522:15:2", + "referencedDeclaration": 705, + "src": "2555:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6351,20 +6271,17 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 721, + "id": 753, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "2504:4:2", + "referencedDeclaration": 4294967268, + "src": "2537:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -6372,24 +6289,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 720, + "id": 752, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2496:7:2", + "src": "2529:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2529:7:2", + "typeDescriptions": {} + } }, - "id": 722, + "id": 754, "isConstant": false, "isLValue": false, "isPure": false, @@ -6397,41 +6320,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2496:13:2", + "src": "2529:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 723, + "id": 755, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2496:21:2", + "src": "2529:21:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 724, + "id": 756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "2496:25:2", + "referencedDeclaration": 3664, + "src": "2529:25:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 726, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -6439,38 +6362,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2496:42:2", + "src": "2529:42:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2469:69:2" + "src": "2502:69:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 731, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 729, + "id": 761, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "2556:16:2", + "referencedDeclaration": 750, + "src": "2589:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6479,41 +6400,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 730, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2575:1:2", - "subdenomination": null, + "src": "2608:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2556:20:2", + "src": "2589:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "436f6e74657374616e745465616d2062616c616e63652069732030", - "id": 732, + "id": 764, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2578:29:2", - "subdenomination": null, + "src": "2611:29:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_ff2a089abb906faf06738d798bc9f928ff05571cb9ac0c49e38afeb68dc1393e", "typeString": "literal_string \"ContestantTeam balance is 0\"" @@ -6532,18 +6449,18 @@ "typeString": "literal_string \"ContestantTeam balance is 0\"" } ], - "id": 728, + "id": 760, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2548:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2581:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 733, + "id": 765, "isConstant": false, "isLValue": false, "isPure": false, @@ -6551,26 +6468,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2548:60:2", + "src": "2581:60:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 734, + "id": 766, "nodeType": "ExpressionStatement", - "src": "2548:60:2" + "src": "2581:60:2" }, { - "assignments": [736], + "assignments": [768], "declarations": [ { "constant": false, - "id": 736, + "id": 768, + "mutability": "mutable", "name": "prize", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2619:13:2", + "scope": 871, + "src": "2652:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6578,31 +6497,28 @@ "typeString": "uint256" }, "typeName": { - "id": 735, + "id": 767, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2619:7:2", + "src": "2652:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 741, + "id": 773, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 739, + "id": 771, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "2656:22:2", + "referencedDeclaration": 695, + "src": "2689:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6617,33 +6533,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 737, + "id": 769, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "2635:16:2", + "referencedDeclaration": 750, + "src": "2668:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 738, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "div", "nodeType": "MemberAccess", - "referencedDeclaration": 4193, - "src": "2635:20:2", + "referencedDeclaration": 3744, + "src": "2668:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 740, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, @@ -6651,38 +6566,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2635:44:2", + "src": "2668:44:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2619:60:2" + "src": "2652:60:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 745, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 743, + "id": 775, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "2697:5:2", + "referencedDeclaration": 768, + "src": "2730:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6691,41 +6604,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 744, + "id": 776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2705:1:2", - "subdenomination": null, + "src": "2738:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2697:9:2", + "src": "2730:9:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4d656d626572207072697a652069732030", - "id": 746, + "id": 778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2708:19:2", - "subdenomination": null, + "src": "2741:19:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_97626f200198080887d69a49d3fec46037b9a997c5301deb340b0b56faf379c3", "typeString": "literal_string \"Member prize is 0\"" @@ -6744,18 +6653,18 @@ "typeString": "literal_string \"Member prize is 0\"" } ], - "id": 742, + "id": 774, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2689:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2722:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 747, + "id": 779, "isConstant": false, "isLValue": false, "isPure": false, @@ -6763,26 +6672,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2689:39:2", + "src": "2722:39:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 780, "nodeType": "ExpressionStatement", - "src": "2689:39:2" + "src": "2722:39:2" }, { - "assignments": [750], + "assignments": [782], "declarations": [ { "constant": false, - "id": 750, + "id": 782, + "mutability": "mutable", "name": "expectedDistribution", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2739:28:2", + "scope": 871, + "src": "2772:28:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6790,44 +6701,40 @@ "typeString": "uint256" }, "typeName": { - "id": 749, + "id": 781, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2739:7:2", + "src": "2772:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 756, + "id": 788, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 753, + "id": 785, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "2783:5:2", + "referencedDeclaration": 768, + "src": "2816:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 754, + "id": 786, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "2790:22:2", + "referencedDeclaration": 695, + "src": "2823:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6846,33 +6753,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 751, + "id": 783, "name": "SafeMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4215, - "src": "2770:8:2", + "referencedDeclaration": 3814, + "src": "2803:8:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SafeMath_$4215_$", + "typeIdentifier": "t_type$_t_contract$_SafeMath_$3814_$", "typeString": "type(library SafeMath)" } }, - "id": 752, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "mul", "nodeType": "MemberAccess", - "referencedDeclaration": 4168, - "src": "2770:12:2", + "referencedDeclaration": 3727, + "src": "2803:12:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 755, + "id": 787, "isConstant": false, "isLValue": false, "isPure": false, @@ -6880,25 +6786,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2770:43:2", + "src": "2803:43:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2739:74:2" + "src": "2772:74:2" }, { - "assignments": [758], + "assignments": [790], "declarations": [ { "constant": false, - "id": 758, + "id": 790, + "mutability": "mutable", "name": "distributedPrize", "nodeType": "VariableDeclaration", - "scope": 837, - "src": "2823:24:2", + "scope": 871, + "src": "2856:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6906,40 +6814,39 @@ "typeString": "uint256" }, "typeName": { - "id": 757, + "id": 789, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2823:7:2", + "src": "2856:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 759, - "initialValue": null, + "id": 791, "nodeType": "VariableDeclarationStatement", - "src": "2823:24:2" + "src": "2856:24:2" }, { "body": { - "id": 802, + "id": 834, "nodeType": "Block", - "src": "2919:303:2", + "src": "2952:303:2", "statements": [ { - "assignments": [772], + "assignments": [804], "declarations": [ { "constant": false, - "id": 772, + "id": 804, + "mutability": "mutable", "name": "member", "nodeType": "VariableDeclaration", - "scope": 802, - "src": "2933:14:2", + "scope": 834, + "src": "2966:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6947,45 +6854,41 @@ "typeString": "address" }, "typeName": { - "id": 771, + "id": 803, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2933:7:2", + "src": "2966:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 776, + "id": 808, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 773, + "id": 805, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "2950:11:2", + "referencedDeclaration": 693, + "src": "2983:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 775, + "id": 807, "indexExpression": { - "argumentTypes": null, - "id": 774, + "id": 806, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2962:5:2", + "referencedDeclaration": 793, + "src": "2995:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6996,51 +6899,47 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2950:18:2", + "src": "2983:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2933:35:2" + "src": "2966:35:2" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 781, + "id": 813, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 777, + "id": 809, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "3034:17:2", + "referencedDeclaration": 699, + "src": "3067:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 779, + "id": 811, "indexExpression": { - "argumentTypes": null, - "id": 778, + "id": 810, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3052:6:2", + "referencedDeclaration": 804, + "src": "3085:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7051,7 +6950,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3034:25:2", + "src": "3067:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7060,70 +6959,63 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "74727565", - "id": 780, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3063:4:2", - "subdenomination": null, + "src": "3096:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3034:33:2", + "src": "3067:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 801, + "id": 833, "nodeType": "IfStatement", - "src": "3030:182:2", + "src": "3063:182:2", "trueBody": { - "id": 800, + "id": 832, "nodeType": "Block", - "src": "3069:143:2", + "src": "3102:143:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 791, + "id": 823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 782, + "id": 814, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "3087:8:2", + "referencedDeclaration": 703, + "src": "3120:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 784, + "id": 816, "indexExpression": { - "argumentTypes": null, - "id": 783, + "id": 815, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3096:6:2", + "referencedDeclaration": 804, + "src": "3129:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7134,7 +7026,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3087:16:2", + "src": "3120:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7143,16 +7035,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 789, + "id": 821, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "3127:5:2", + "referencedDeclaration": 768, + "src": "3160:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7167,29 +7057,26 @@ } ], "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 785, + "id": 817, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "3106:8:2", + "referencedDeclaration": 703, + "src": "3139:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 787, + "id": 819, "indexExpression": { - "argumentTypes": null, - "id": 786, + "id": 818, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "3115:6:2", + "referencedDeclaration": 804, + "src": "3148:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7200,27 +7087,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3106:16:2", + "src": "3139:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 788, + "id": 820, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3106:20:2", + "referencedDeclaration": 3647, + "src": "3139:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 790, + "id": 822, "isConstant": false, "isLValue": false, "isPure": false, @@ -7228,38 +7115,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3106:27:2", + "src": "3139:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3087:46:2", + "src": "3120:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 792, + "id": 824, "nodeType": "ExpressionStatement", - "src": "3087:46:2" + "src": "3120:46:2" }, { "expression": { - "argumentTypes": null, - "id": 798, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 793, + "id": 825, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3151:16:2", + "referencedDeclaration": 790, + "src": "3184:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7268,16 +7154,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 796, + "id": 828, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "3191:5:2", + "referencedDeclaration": 768, + "src": "3224:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7292,33 +7176,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 794, + "id": 826, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3170:16:2", + "referencedDeclaration": 790, + "src": "3203:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 795, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3170:20:2", + "referencedDeclaration": 3647, + "src": "3203:20:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 797, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -7326,21 +7209,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3170:27:2", + "src": "3203:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3151:46:2", + "src": "3184:46:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 799, + "id": 831, "nodeType": "ExpressionStatement", - "src": "3151:46:2" + "src": "3184:46:2" } ] } @@ -7348,24 +7232,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 767, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 764, + "id": 796, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2882:5:2", + "referencedDeclaration": 793, + "src": "2915:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7374,51 +7256,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 765, + "id": 797, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "2890:11:2", + "referencedDeclaration": 693, + "src": "2923:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 766, + "id": 798, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2890:18:2", + "src": "2923:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2882:26:2", + "src": "2915:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 803, + "id": 835, "initializationExpression": { - "assignments": [761], + "assignments": [793], "declarations": [ { "constant": false, - "id": 761, + "id": 793, + "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", - "scope": 803, - "src": "2863:13:2", + "scope": 835, + "src": "2896:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7426,32 +7306,29 @@ "typeString": "uint256" }, "typeName": { - "id": 760, + "id": 792, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2863:7:2", + "src": "2896:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 763, + "id": 795, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 762, + "id": 794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2879:1:2", - "subdenomination": null, + "src": "2912:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7459,12 +7336,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2863:17:2" + "src": "2896:17:2" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 769, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -7472,15 +7348,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2910:7:2", + "src": "2943:7:2", "subExpression": { - "argumentTypes": null, - "id": 768, + "id": 800, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "2910:5:2", + "referencedDeclaration": 793, + "src": "2943:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7491,29 +7366,27 @@ "typeString": "uint256" } }, - "id": 770, + "id": 802, "nodeType": "ExpressionStatement", - "src": "2910:7:2" + "src": "2943:7:2" }, "nodeType": "ForStatement", - "src": "2858:364:2" + "src": "2891:364:2" }, { "expression": { - "argumentTypes": null, - "id": 809, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 804, + "id": 836, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3307:15:2", + "referencedDeclaration": 705, + "src": "3340:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7522,16 +7395,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 807, + "id": 839, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3345:16:2", + "referencedDeclaration": 750, + "src": "3378:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7546,33 +7417,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 805, + "id": 837, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3325:15:2", + "referencedDeclaration": 705, + "src": "3358:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 806, + "id": 838, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3325:19:2", + "referencedDeclaration": 3647, + "src": "3358:19:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 808, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -7580,45 +7450,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3325:37:2", + "src": "3358:37:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3307:55:2", + "src": "3340:55:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 810, + "id": 842, "nodeType": "ExpressionStatement", - "src": "3307:55:2" + "src": "3340:55:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 814, + "id": 846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 812, + "id": 844, "name": "distributedPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "3772:16:2", + "referencedDeclaration": 790, + "src": "3805:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7627,36 +7495,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 813, + "id": 845, "name": "expectedDistribution", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "3792:20:2", + "referencedDeclaration": 782, + "src": "3825:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3772:40:2", + "src": "3805:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c69642073706c6974206265747765656e20616374697665206d656d62657273", - "id": 815, + "id": 847, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3814:38:2", - "subdenomination": null, + "src": "3847:38:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3f76e1d08879ae23fd9e5bc3cf01743808f55698db9d915a253d9841f9e90780", "typeString": "literal_string \"Invalid split between active members\"" @@ -7675,18 +7540,18 @@ "typeString": "literal_string \"Invalid split between active members\"" } ], - "id": 811, + "id": 843, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3764:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3797:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 816, + "id": 848, "isConstant": false, "isLValue": false, "isPure": false, @@ -7694,46 +7559,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3764:89:2", + "src": "3797:89:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 817, + "id": 849, "nodeType": "ExpressionStatement", - "src": "3764:89:2" + "src": "3797:89:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 824, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 820, + "id": 853, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4268, - "src": "3879:4:2", + "referencedDeclaration": 4294967268, + "src": "3912:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -7741,24 +7602,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 819, + "id": 852, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3871:7:2", + "src": "3904:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:2", + "typeDescriptions": {} + } }, - "id": 821, + "id": 854, "isConstant": false, "isLValue": false, "isPure": false, @@ -7766,21 +7633,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3871:13:2", + "src": "3904:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 822, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3871:21:2", + "src": "3904:21:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7789,36 +7656,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 823, + "id": 856, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "3896:15:2", + "referencedDeclaration": 705, + "src": "3929:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3871:40:2", + "src": "3904:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "52657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79", - "id": 825, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3913:44:2", - "subdenomination": null, + "src": "3946:44:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_73d57ed3aa0a7727c22d333c46f033feecfbbbd61b6977ff3cd8f15b6ce10ad8", "typeString": "literal_string \"Reserved balanced was not updated properly\"" @@ -7837,18 +7701,18 @@ "typeString": "literal_string \"Reserved balanced was not updated properly\"" } ], - "id": 818, + "id": 850, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3863:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3896:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 826, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -7856,96 +7720,103 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3863:95:2", + "src": "3896:95:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 827, + "id": 860, "nodeType": "ExpressionStatement", - "src": "3863:95:2" + "src": "3896:95:2" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 829, + "id": 862, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3984:3:2", + "referencedDeclaration": 4294967281, + "src": "4017:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 830, + "id": 863, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3984:10:2", + "src": "4017:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 831, + "id": 864, "name": "availableBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "3996:16:2", + "referencedDeclaration": 750, + "src": "4029:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 832, + "id": 865, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "4014:22:2", + "referencedDeclaration": 695, + "src": "4047:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 833, + "id": 866, "name": "prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 736, - "src": "4038:5:2", + "referencedDeclaration": 768, + "src": "4071:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 834, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "4045:3:2", + "expression": { + "id": 867, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4078:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4078:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7975,18 +7846,18 @@ "typeString": "uint256" } ], - "id": 828, + "id": 861, "name": "PrizeSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "3973:10:2", + "referencedDeclaration": 727, + "src": "4006:10:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256,uint256,uint256)" } }, - "id": 835, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -7994,143 +7865,139 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3973:76:2", + "src": "4006:88:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 836, + "id": 870, "nodeType": "EmitStatement", - "src": "3968:81:2" + "src": "4001:93:2" } ] }, - "documentation": "@notice Splits the available's contract balance between active team members.\n@dev Implements the \"withdraw pattern\" by allocating balances to team \nmembers, so they can request a withdraw once the split is done.", - "id": 838, + "documentation": { + "id": 742, + "nodeType": "StructuredDocumentation", + "src": "2088:244:2", + "text": " @notice Splits the available's contract balance between active team members.\n @dev Implements the \"withdraw pattern\" by allocating balances to team \n members, so they can request a withdraw once the split is done." + }, + "functionSelector": "07057382", + "id": 872, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 714, + "id": 745, "modifierName": { - "argumentTypes": null, - "id": 713, + "id": 744, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "2335:12:2", + "referencedDeclaration": 3075, + "src": "2368:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2335:12:2" + "src": "2368:12:2" }, { - "arguments": null, - "id": 716, + "id": 747, "modifierName": { - "argumentTypes": null, - "id": 715, + "id": 746, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2348:13:2", + "referencedDeclaration": 2548, + "src": "2381:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2348:13:2" + "src": "2381:13:2" } ], "name": "splitPrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 712, + "id": 743, "nodeType": "ParameterList", "parameters": [], - "src": "2323:2:2" + "src": "2356:2:2" }, "returnParameters": { - "id": 717, + "id": 748, "nodeType": "ParameterList", "parameters": [], - "src": "2362:0:2" + "src": "2395:0:2" }, - "scope": 1066, - "src": "2304:1752:2", + "scope": 1114, + "src": "2337:1764:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 896, + "id": 932, "nodeType": "Block", - "src": "4419:468:2", + "src": "4464:480:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 849, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 844, + "id": 879, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4437:8:2", + "referencedDeclaration": 703, + "src": "4482:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 847, + "id": 882, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 845, + "id": 880, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4446:3:2", + "referencedDeclaration": 4294967281, + "src": "4491:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 846, + "id": 881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4446:10:2", + "src": "4491:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8141,7 +8008,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4437:20:2", + "src": "4482:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8150,36 +8017,33 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "argumentTypes": null, - "id": 848, + "id": 883, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4461:6:2", + "referencedDeclaration": 875, + "src": "4506:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4437:30:2", + "src": "4482:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682062616c616e6365", - "id": 850, + "id": 885, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4469:20:2", - "subdenomination": null, + "src": "4514:20:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_62feb6dde0d8b91e793e4cfea2e07175444fe82cab5a2cd9e870981f43f4dbad", "typeString": "literal_string \"Not enough balance\"" @@ -8198,18 +8062,18 @@ "typeString": "literal_string \"Not enough balance\"" } ], - "id": 843, + "id": 878, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4429:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4474:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 851, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -8217,26 +8081,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4429:61:2", + "src": "4474:61:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 852, + "id": 887, "nodeType": "ExpressionStatement", - "src": "4429:61:2" + "src": "4474:61:2" }, { - "assignments": [854], + "assignments": [889], "declarations": [ { "constant": false, - "id": 854, + "id": 889, + "mutability": "mutable", "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 896, - "src": "4500:22:2", + "scope": 932, + "src": "4545:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8244,60 +8110,54 @@ "typeString": "uint256" }, "typeName": { - "id": 853, + "id": 888, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4500:7:2", + "src": "4545:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 859, + "id": 894, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 855, + "id": 890, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4525:8:2", + "referencedDeclaration": 703, + "src": "4570:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 858, + "id": 893, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 856, + "id": 891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4534:3:2", + "referencedDeclaration": 4294967281, + "src": "4579:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 857, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4534:10:2", + "src": "4579:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8308,31 +8168,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4525:20:2", + "src": "4570:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4500:45:2" + "src": "4545:45:2" }, { "expression": { - "argumentTypes": null, - "id": 865, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 860, + "id": 895, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4555:14:2", + "referencedDeclaration": 889, + "src": "4600:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8341,16 +8199,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 863, + "id": 898, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4591:6:2", + "referencedDeclaration": 875, + "src": "4636:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8365,33 +8221,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 861, + "id": 896, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4572:14:2", + "referencedDeclaration": 889, + "src": "4617:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 862, + "id": 897, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "4572:18:2", + "referencedDeclaration": 3664, + "src": "4617:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 864, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -8399,70 +8254,65 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4572:26:2", + "src": "4617:26:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4555:43:2", + "src": "4600:43:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 866, + "id": 901, "nodeType": "ExpressionStatement", - "src": "4555:43:2" + "src": "4600:43:2" }, { "expression": { - "argumentTypes": null, - "id": 872, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 867, + "id": 902, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "4608:8:2", + "referencedDeclaration": 703, + "src": "4653:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 870, + "id": 905, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 868, + "id": 903, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4617:3:2", + "referencedDeclaration": 4294967281, + "src": "4662:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 869, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4617:10:2", + "src": "4662:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -8473,7 +8323,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4608:20:2", + "src": "4653:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8482,44 +8332,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 871, + "id": 906, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "4631:14:2", + "referencedDeclaration": 889, + "src": "4676:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4608:37:2", + "src": "4653:37:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 873, + "id": 908, "nodeType": "ExpressionStatement", - "src": "4608:37:2" + "src": "4653:37:2" }, { "expression": { - "argumentTypes": null, - "id": 879, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 874, + "id": 909, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "4750:15:2", + "referencedDeclaration": 705, + "src": "4795:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8528,16 +8375,14 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 877, + "id": 912, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4788:6:2", + "referencedDeclaration": 875, + "src": "4833:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8552,33 +8397,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 875, + "id": 910, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "4768:15:2", + "referencedDeclaration": 705, + "src": "4813:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 876, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "4768:19:2", + "referencedDeclaration": 3664, + "src": "4813:19:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 878, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -8586,34 +8430,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4768:27:2", + "src": "4813:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4750:45:2", + "src": "4795:45:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 880, + "id": 915, "nodeType": "ExpressionStatement", - "src": "4750:45:2" + "src": "4795:45:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 886, + "id": 921, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4825:6:2", + "referencedDeclaration": 875, + "src": "4870:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8628,49 +8471,45 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 881, + "id": 916, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4805:3:2", + "referencedDeclaration": 4294967281, + "src": "4850:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 884, + "id": 919, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4805:10:2", + "src": "4850:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 885, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4805:19:2", + "src": "4850:19:2", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 887, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -8678,70 +8517,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4805:27:2", + "src": "4850:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 888, + "id": 923, "nodeType": "ExpressionStatement", - "src": "4805:27:2" + "src": "4850:27:2" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 890, + "id": 925, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "4856:3:2", + "referencedDeclaration": 4294967281, + "src": "4901:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 891, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4856:10:2", + "src": "4901:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 892, + "id": 927, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "4868:6:2", + "referencedDeclaration": 875, + "src": "4913:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 893, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "4876:3:2", + "expression": { + "id": 928, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4921:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4921:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8763,18 +8611,18 @@ "typeString": "uint256" } ], - "id": 889, + "id": 924, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "4847:8:2", + "referencedDeclaration": 714, + "src": "4892:8:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 894, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, @@ -8782,36 +8630,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4847:33:2", + "src": "4892:45:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 895, + "id": 931, "nodeType": "EmitStatement", - "src": "4842:38:2" + "src": "4887:50:2" } ] }, - "documentation": "@notice Allows a team member to withdraw its funds from the contract.\n@dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\nThe method is public, so inactive members (that renounced membership)\nare still able to withdraw funds in case balance > 0. ", - "id": 897, + "documentation": { + "id": 873, + "nodeType": "StructuredDocumentation", + "src": "4107:309:2", + "text": " @notice Allows a team member to withdraw its funds from the contract.\n @dev Implements the \"withdraw pattern\" allowing members to withdraw funds.\n The method is public, so inactive members (that renounced membership)\n are still able to withdraw funds in case balance > 0. " + }, + "functionSelector": "2e1a7d4d", + "id": 933, "implemented": true, "kind": "function", "modifiers": [], "name": "withdraw", "nodeType": "FunctionDefinition", "parameters": { - "id": 841, + "id": 876, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 840, + "id": 875, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4394:14:2", + "scope": 933, + "src": "4439:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8819,62 +8675,58 @@ "typeString": "uint256" }, "typeName": { - "id": 839, + "id": 874, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4394:7:2", + "src": "4439:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "4393:16:2" + "src": "4438:16:2" }, "returnParameters": { - "id": 842, + "id": 877, "nodeType": "ParameterList", "parameters": [], - "src": "4419:0:2" + "src": "4464:0:2" }, - "scope": 1066, - "src": "4376:511:2", + "scope": 1114, + "src": "4421:523:2", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 954, + "id": 992, "nodeType": "Block", - "src": "5095:531:2", + "src": "5152:531:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 907, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 904, + "id": 941, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5113:22:2", + "referencedDeclaration": 695, + "src": "5170:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8883,35 +8735,32 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 905, + "id": 942, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5139:11:2", + "referencedDeclaration": 693, + "src": "5196:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 906, + "id": 943, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5139:18:2", + "src": "5196:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5113:44:2", + "src": "5170:44:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8925,18 +8774,18 @@ "typeString": "bool" } ], - "id": 903, + "id": 940, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4233, - "src": "5105:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5162:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 908, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, @@ -8944,26 +8793,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5105:53:2", + "src": "5162:53:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 909, + "id": 946, "nodeType": "ExpressionStatement", - "src": "5105:53:2" + "src": "5162:53:2" }, { - "assignments": [913], + "assignments": [951], "declarations": [ { "constant": false, - "id": 913, + "id": 951, + "mutability": "mutable", "name": "activeMembers", "nodeType": "VariableDeclaration", - "scope": 954, - "src": "5168:30:2", + "scope": 992, + "src": "5225:30:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8972,40 +8823,36 @@ }, "typeName": { "baseType": { - "id": 911, + "id": 949, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5168:7:2", + "src": "5225:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 912, - "length": null, + "id": 950, "nodeType": "ArrayTypeName", - "src": "5168:9:2", + "src": "5225:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "id": 919, + "id": 957, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 917, + "id": 955, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5215:22:2", + "referencedDeclaration": 695, + "src": "5272:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9019,40 +8866,39 @@ "typeString": "uint256" } ], - "id": 916, + "id": 954, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5201:13:2", + "src": "5258:13:2", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 914, + "id": 952, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5205:7:2", + "src": "5262:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 915, - "length": null, + "id": 953, "nodeType": "ArrayTypeName", - "src": "5205:9:2", + "src": "5262:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 918, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -9060,31 +8906,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5201:37:2", + "src": "5258:37:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5168:70:2" + "src": "5225:70:2" }, { "body": { - "id": 950, + "id": 988, "nodeType": "Block", - "src": "5416:174:2", + "src": "5473:174:2", "statements": [ { - "assignments": [932], + "assignments": [970], "declarations": [ { "constant": false, - "id": 932, + "id": 970, + "mutability": "mutable", "name": "member", "nodeType": "VariableDeclaration", - "scope": 950, - "src": "5430:14:2", + "scope": 988, + "src": "5487:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9092,45 +8940,41 @@ "typeString": "address" }, "typeName": { - "id": 931, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5430:7:2", + "src": "5487:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 936, + "id": 974, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 933, + "id": 971, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5447:11:2", + "referencedDeclaration": 693, + "src": "5504:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 935, + "id": 973, "indexExpression": { - "argumentTypes": null, - "id": 934, + "id": 972, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5459:5:2", + "referencedDeclaration": 959, + "src": "5516:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9141,51 +8985,47 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5447:18:2", + "src": "5504:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5430:35:2" + "src": "5487:35:2" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 941, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 937, + "id": 975, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "5483:17:2", + "referencedDeclaration": 699, + "src": "5540:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 939, + "id": 977, "indexExpression": { - "argumentTypes": null, - "id": 938, + "id": 976, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "5501:6:2", + "referencedDeclaration": 970, + "src": "5558:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9196,7 +9036,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5483:25:2", + "src": "5540:25:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9205,70 +9045,63 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "74727565", - "id": 940, + "id": 978, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5512:4:2", - "subdenomination": null, + "src": "5569:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5483:33:2", + "src": "5540:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 949, + "id": 987, "nodeType": "IfStatement", - "src": "5479:101:2", + "src": "5536:101:2", "trueBody": { - "id": 948, + "id": 986, "nodeType": "Block", - "src": "5518:62:2", + "src": "5575:62:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 946, + "id": 984, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 942, + "id": 980, "name": "activeMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "5536:13:2", + "referencedDeclaration": 951, + "src": "5593:13:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 944, + "id": 982, "indexExpression": { - "argumentTypes": null, - "id": 943, + "id": 981, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5550:5:2", + "referencedDeclaration": 959, + "src": "5607:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9279,7 +9112,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5536:20:2", + "src": "5593:20:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9288,27 +9121,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 945, + "id": 983, "name": "member", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, - "src": "5559:6:2", + "referencedDeclaration": 970, + "src": "5616:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5536:29:2", + "src": "5593:29:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 947, + "id": 985, "nodeType": "ExpressionStatement", - "src": "5536:29:2" + "src": "5593:29:2" } ] } @@ -9316,24 +9148,22 @@ ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 927, + "id": 965, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 924, + "id": 962, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5379:5:2", + "referencedDeclaration": 959, + "src": "5436:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9342,51 +9172,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 925, + "id": 963, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "5387:11:2", + "referencedDeclaration": 693, + "src": "5444:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 926, + "id": 964, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5387:18:2", + "src": "5444:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5379:26:2", + "src": "5436:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 951, + "id": 989, "initializationExpression": { - "assignments": [921], + "assignments": [959], "declarations": [ { "constant": false, - "id": 921, + "id": 959, + "mutability": "mutable", "name": "index", "nodeType": "VariableDeclaration", - "scope": 951, - "src": "5360:13:2", + "scope": 989, + "src": "5417:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9394,32 +9222,29 @@ "typeString": "uint256" }, "typeName": { - "id": 920, + "id": 958, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5360:7:2", + "src": "5417:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 923, + "id": 961, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 922, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5376:1:2", - "subdenomination": null, + "src": "5433:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -9427,12 +9252,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5360:17:2" + "src": "5417:17:2" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 929, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -9440,15 +9264,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5407:7:2", + "src": "5464:7:2", "subExpression": { - "argumentTypes": null, - "id": 928, + "id": 966, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "5407:5:2", + "referencedDeclaration": 959, + "src": "5464:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9459,58 +9282,64 @@ "typeString": "uint256" } }, - "id": 930, + "id": 968, "nodeType": "ExpressionStatement", - "src": "5407:7:2" + "src": "5464:7:2" }, "nodeType": "ForStatement", - "src": "5355:235:2" + "src": "5412:235:2" }, { "expression": { - "argumentTypes": null, - "id": 952, + "id": 990, "name": "activeMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 913, - "src": "5606:13:2", + "referencedDeclaration": 951, + "src": "5663:13:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 902, - "id": 953, + "functionReturnParameters": 939, + "id": 991, "nodeType": "Return", - "src": "5599:20:2" + "src": "5656:20:2" } ] }, - "documentation": "@notice Gets the active members in the team.\n @return An array of addresses representing the accounts of active members", - "id": 955, + "documentation": { + "id": 934, + "nodeType": "StructuredDocumentation", + "src": "4950:130:2", + "text": "@notice Gets the active members in the team.\n @return An array of addresses representing the accounts of active members" + }, + "functionSelector": "4876aebc", + "id": 993, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveMembers", "nodeType": "FunctionDefinition", "parameters": { - "id": 898, + "id": 935, "nodeType": "ParameterList", "parameters": [], - "src": "5053:2:2" + "src": "5110:2:2" }, "returnParameters": { - "id": 902, + "id": 939, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 901, + "id": 938, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 955, - "src": "5077:16:2", + "scope": 993, + "src": "5134:16:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9519,88 +9348,92 @@ }, "typeName": { "baseType": { - "id": 899, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5077:7:2", + "src": "5134:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 900, - "length": null, + "id": 937, "nodeType": "ArrayTypeName", - "src": "5077:9:2", + "src": "5134:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "5076:18:2" + "src": "5133:18:2" }, - "scope": 1066, - "src": "5028:598:2", + "scope": 1114, + "src": "5085:598:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 962, + "id": 1001, "nodeType": "Block", - "src": "5803:46:2", + "src": "5860:46:2", "statements": [ { "expression": { - "argumentTypes": null, - "id": 960, + "id": 999, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "5820:22:2", + "referencedDeclaration": 695, + "src": "5877:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 959, - "id": 961, + "functionReturnParameters": 998, + "id": 1000, "nodeType": "Return", - "src": "5813:29:2" + "src": "5870:29:2" } ] }, - "documentation": "@notice Gets the number of active team members.\n @return {uint256} Count of active members", - "id": 963, + "documentation": { + "id": 994, + "nodeType": "StructuredDocumentation", + "src": "5689:101:2", + "text": "@notice Gets the number of active team members.\n @return {uint256} Count of active members" + }, + "functionSelector": "8f7c8519", + "id": 1002, "implemented": true, "kind": "function", "modifiers": [], "name": "getActiveMembersCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 956, + "id": 995, "nodeType": "ParameterList", "parameters": [], - "src": "5768:2:2" + "src": "5825:2:2" }, "returnParameters": { - "id": 959, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 958, + "id": 997, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 963, - "src": "5794:7:2", + "scope": 1002, + "src": "5851:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9608,74 +9441,68 @@ "typeString": "uint256" }, "typeName": { - "id": 957, + "id": 996, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5794:7:2", + "src": "5851:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "5793:9:2" + "src": "5850:9:2" }, - "scope": 1066, - "src": "5738:111:2", + "scope": 1114, + "src": "5795:111:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 975, + "id": 1015, "nodeType": "Block", - "src": "6013:44:2", + "src": "6070:44:2", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 970, + "id": 1010, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 676, - "src": "6030:8:2", + "referencedDeclaration": 703, + "src": "6087:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 973, + "id": 1013, "indexExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 971, + "id": 1011, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "6039:3:2", + "referencedDeclaration": 4294967281, + "src": "6096:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 972, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6039:10:2", + "src": "6096:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -9686,63 +9513,68 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6030:20:2", + "src": "6087:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 969, - "id": 974, + "functionReturnParameters": 1009, + "id": 1014, "nodeType": "Return", - "src": "6023:27:2" + "src": "6080:27:2" } ] }, - "documentation": "@notice Get the balance of a team member\n @return The balance of a team member", - "id": 976, + "documentation": { + "id": 1003, + "nodeType": "StructuredDocumentation", + "src": "5912:89:2", + "text": "@notice Get the balance of a team member\n @return The balance of a team member" + }, + "functionSelector": "722713f7", + "id": 1016, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 966, + "id": 1006, "modifierName": { - "argumentTypes": null, - "id": 965, + "id": 1005, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "5982:12:2", + "referencedDeclaration": 3075, + "src": "6039:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5982:12:2" + "src": "6039:12:2" } ], "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 964, + "id": 1004, "nodeType": "ParameterList", "parameters": [], - "src": "5967:2:2" + "src": "6024:2:2" }, "returnParameters": { - "id": 969, + "id": 1009, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 968, + "id": 1008, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 976, - "src": "6004:7:2", + "scope": 1016, + "src": "6061:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9750,67 +9582,65 @@ "typeString": "uint256" }, "typeName": { - "id": 967, + "id": 1007, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6004:7:2", + "src": "6061:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "6003:9:2" + "src": "6060:9:2" }, - "scope": 1066, - "src": "5949:108:2", + "scope": 1114, + "src": "6006:108:2", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2566], "body": { - "id": 986, + "id": 1028, "nodeType": "Block", - "src": "6228:30:2", + "src": "6294:30:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 981, + "id": 1023, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6238:5:2", + "referencedDeclaration": 4294967271, + "src": "6304:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 983, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pause", "nodeType": "MemberAccess", - "referencedDeclaration": 2461, - "src": "6238:11:2", + "referencedDeclaration": 2566, + "src": "6304:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 984, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -9818,103 +9648,113 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6238:13:2", + "src": "6304:13:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 985, + "id": 1027, "nodeType": "ExpressionStatement", - "src": "6238:13:2" + "src": "6304:13:2" } ] }, - "documentation": "@notice Trigger the paused state.\n@dev Implements the onlyAttendee modifier for access control.", - "id": 987, + "documentation": { + "id": 1017, + "nodeType": "StructuredDocumentation", + "src": "6120:123:2", + "text": "@notice Trigger the paused state.\n@dev Implements the onlyAttendee modifier for access control." + }, + "functionSelector": "8456cb59", + "id": 1029, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 979, + "id": 1021, "modifierName": { - "argumentTypes": null, - "id": 978, + "id": 1020, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "6215:12:2", + "referencedDeclaration": 3075, + "src": "6281:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6215:12:2" + "src": "6281:12:2" } ], "name": "pause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1019, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6272:8:2" + }, "parameters": { - "id": 977, + "id": 1018, "nodeType": "ParameterList", "parameters": [], - "src": "6205:2:2" + "src": "6262:2:2" }, "returnParameters": { - "id": 980, + "id": 1022, "nodeType": "ParameterList", "parameters": [], - "src": "6228:0:2" + "src": "6294:0:2" }, - "scope": 1066, - "src": "6191:67:2", + "scope": 1114, + "src": "6248:76:2", "stateMutability": "nonpayable", - "superFunction": 2461, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2574], "body": { - "id": 997, + "id": 1041, "nodeType": "Block", - "src": "6429:32:2", + "src": "6504:32:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 992, + "id": 1036, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6439:5:2", + "referencedDeclaration": 4294967271, + "src": "6514:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 994, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "unpause", "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "6439:13:2", + "referencedDeclaration": 2574, + "src": "6514:13:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 995, + "id": 1039, "isConstant": false, "isLValue": false, "isPure": false, @@ -9922,81 +9762,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6439:15:2", + "src": "6514:15:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 996, + "id": 1040, "nodeType": "ExpressionStatement", - "src": "6439:15:2" + "src": "6514:15:2" } ] }, - "documentation": "@notice Lifts the paused state.\n@dev Implements the onlyAttendee modifier for access control.", - "id": 998, + "documentation": { + "id": 1030, + "nodeType": "StructuredDocumentation", + "src": "6330:121:2", + "text": "@notice Lifts the paused state.\n@dev Implements the onlyAttendee modifier for access control." + }, + "functionSelector": "3f4ba83a", + "id": 1042, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 990, + "id": 1034, "modifierName": { - "argumentTypes": null, - "id": 989, + "id": 1033, "name": "onlyAttendee", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "6416:12:2", + "referencedDeclaration": 3075, + "src": "6491:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6416:12:2" + "src": "6491:12:2" } ], "name": "unpause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1032, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6482:8:2" + }, "parameters": { - "id": 988, + "id": 1031, "nodeType": "ParameterList", "parameters": [], - "src": "6406:2:2" + "src": "6472:2:2" }, "returnParameters": { - "id": 991, + "id": 1035, "nodeType": "ParameterList", "parameters": [], - "src": "6429:0:2" + "src": "6504:0:2" }, - "scope": 1066, - "src": "6390:71:2", + "scope": 1114, + "src": "6456:80:2", "stateMutability": "nonpayable", - "superFunction": 2468, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3125], "body": { - "id": 1030, + "id": 1076, "nodeType": "Block", - "src": "6645:186:2", + "src": "6729:186:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1008, + "id": 1054, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6674:7:2", + "referencedDeclaration": 1045, + "src": "6758:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10011,33 +9861,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1005, + "id": 1051, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "6655:5:2", + "referencedDeclaration": 4294967271, + "src": "6739:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 1007, + "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3000, - "src": "6655:18:2", + "referencedDeclaration": 3125, + "src": "6739:18:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1009, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -10045,28 +9894,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6655:27:2", + "src": "6739:27:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1010, + "id": 1056, "nodeType": "ExpressionStatement", - "src": "6655:27:2" + "src": "6739:27:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1014, + "id": 1060, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6709:7:2", + "referencedDeclaration": 1045, + "src": "6793:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10081,33 +9929,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 1011, + "id": 1057, "name": "teamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "6692:11:2", + "referencedDeclaration": 693, + "src": "6776:11:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1013, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6692:16:2", + "src": "6776:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 1015, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, @@ -10115,48 +9961,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6692:25:2", + "src": "6776:25:2", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1016, + "id": 1062, "nodeType": "ExpressionStatement", - "src": "6692:25:2" + "src": "6776:25:2" }, { "expression": { - "argumentTypes": null, - "id": 1021, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1017, + "id": 1063, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "6727:17:2", + "referencedDeclaration": 699, + "src": "6811:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1019, + "id": 1065, "indexExpression": { - "argumentTypes": null, - "id": 1018, + "id": 1064, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1000, - "src": "6745:7:2", + "referencedDeclaration": 1045, + "src": "6829:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10167,7 +10010,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6727:26:2", + "src": "6811:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10176,49 +10019,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1020, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "6756:4:2", - "subdenomination": null, + "src": "6840:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "6727:33:2", + "src": "6811:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1022, + "id": 1068, "nodeType": "ExpressionStatement", - "src": "6727:33:2" + "src": "6811:33:2" }, { "expression": { - "argumentTypes": null, - "id": 1028, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1023, + "id": 1069, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "6770:22:2", + "referencedDeclaration": 695, + "src": "6854:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10227,20 +10066,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1026, + "id": 1072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6822:1:2", - "subdenomination": null, + "src": "6906:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -10256,33 +10092,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1024, + "id": 1070, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "6795:22:2", + "referencedDeclaration": 695, + "src": "6879:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1025, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "6795:26:2", + "referencedDeclaration": 3647, + "src": "6879:26:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1027, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, @@ -10290,62 +10125,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6795:29:2", + "src": "6879:29:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6770:54:2", + "src": "6854:54:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1029, + "id": 1075, "nodeType": "ExpressionStatement", - "src": "6770:54:2" + "src": "6854:54:2" } ] }, - "documentation": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.", - "id": 1031, + "documentation": { + "id": 1043, + "nodeType": "StructuredDocumentation", + "src": "6542:111:2", + "text": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members." + }, + "id": 1077, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1003, + "id": 1049, "modifierName": { - "argumentTypes": null, - "id": 1002, + "id": 1048, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "6631:13:2", + "referencedDeclaration": 2548, + "src": "6715:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6631:13:2" + "src": "6715:13:2" } ], "name": "_addAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1047, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "6706:8:2" + }, "parameters": { - "id": 1001, + "id": 1046, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1000, + "id": 1045, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1031, - "src": "6605:15:2", + "scope": 1077, + "src": "6680:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10353,63 +10199,60 @@ "typeString": "address" }, "typeName": { - "id": 999, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6605:7:2", + "src": "6680:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "6604:17:2" + "src": "6679:17:2" }, "returnParameters": { - "id": 1004, + "id": 1050, "nodeType": "ParameterList", "parameters": [], - "src": "6645:0:2" + "src": "6729:0:2" }, - "scope": 1066, - "src": "6583:248:2", + "scope": 1114, + "src": "6658:257:2", "stateMutability": "nonpayable", - "superFunction": 3000, + "virtual": false, "visibility": "internal" }, { + "baseFunctions": [3141], "body": { - "id": 1064, + "id": 1112, "nodeType": "Block", - "src": "7018:309:2", + "src": "7111:309:2", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1041, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1039, + "id": 1087, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7102:22:2", + "referencedDeclaration": 695, + "src": "7195:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10418,41 +10261,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "31", - "id": 1040, + "id": 1088, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7127:1:2", - "subdenomination": null, + "src": "7220:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "7102:26:2", + "src": "7195:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374", - "id": 1042, + "id": 1090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7130:41:2", - "subdenomination": null, + "src": "7223:41:2", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e70de562d66488b40c0ae70fc4448393de49a3e4c3d60e9b1648bb881bcf7681", "typeString": "literal_string \"Cannot remove last member from contract\"" @@ -10471,18 +10310,18 @@ "typeString": "literal_string \"Cannot remove last member from contract\"" } ], - "id": 1038, + "id": 1086, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "7094:7:2", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "7187:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1043, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, @@ -10490,28 +10329,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7094:78:2", + "src": "7187:78:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1044, + "id": 1092, "nodeType": "ExpressionStatement", - "src": "7094:78:2" + "src": "7187:78:2" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1048, + "id": 1096, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7204:7:2", + "referencedDeclaration": 1080, + "src": "7297:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10526,33 +10364,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1045, + "id": 1093, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4269, - "src": "7182:5:2", + "referencedDeclaration": 4294967271, + "src": "7275:5:2", "typeDescriptions": { - "typeIdentifier": "t_super$_ContestTeam_$1066", + "typeIdentifier": "t_super$_ContestTeam_$1114", "typeString": "contract super ContestTeam" } }, - "id": 1047, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeAttendee", "nodeType": "MemberAccess", - "referencedDeclaration": 3016, - "src": "7182:21:2", + "referencedDeclaration": 3141, + "src": "7275:21:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 1049, + "id": 1097, "isConstant": false, "isLValue": false, "isPure": false, @@ -10560,48 +10397,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7182:30:2", + "src": "7275:30:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1050, + "id": 1098, "nodeType": "ExpressionStatement", - "src": "7182:30:2" + "src": "7275:30:2" }, { "expression": { - "argumentTypes": null, - "id": 1055, + "id": 1103, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1051, + "id": 1099, "name": "activeTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 672, - "src": "7222:17:2", + "referencedDeclaration": 699, + "src": "7315:17:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1053, + "id": 1101, "indexExpression": { - "argumentTypes": null, - "id": 1052, + "id": 1100, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "7240:7:2", + "referencedDeclaration": 1080, + "src": "7333:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10612,7 +10446,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7222:26:2", + "src": "7315:26:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10621,49 +10455,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1054, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "7251:5:2", - "subdenomination": null, + "src": "7344:5:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "7222:34:2", + "src": "7315:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1056, + "id": 1104, "nodeType": "ExpressionStatement", - "src": "7222:34:2" + "src": "7315:34:2" }, { "expression": { - "argumentTypes": null, - "id": 1062, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1057, + "id": 1105, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7266:22:2", + "referencedDeclaration": 695, + "src": "7359:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10672,20 +10502,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1060, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7318:1:2", - "subdenomination": null, + "src": "7411:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -10701,33 +10528,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1058, + "id": 1106, "name": "activeTeamMembersCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "7291:22:2", + "referencedDeclaration": 695, + "src": "7384:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1059, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "7291:26:2", + "referencedDeclaration": 3664, + "src": "7384:26:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1061, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -10735,62 +10561,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7291:29:2", + "src": "7384:29:2", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7266:54:2", + "src": "7359:54:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1063, + "id": 1111, "nodeType": "ExpressionStatement", - "src": "7266:54:2" + "src": "7359:54:2" } ] }, - "documentation": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members.", - "id": 1065, + "documentation": { + "id": 1078, + "nodeType": "StructuredDocumentation", + "src": "6921:111:2", + "text": "@dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members." + }, + "id": 1113, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1036, + "id": 1084, "modifierName": { - "argumentTypes": null, - "id": 1035, + "id": 1083, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "7004:13:2", + "referencedDeclaration": 2548, + "src": "7097:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7004:13:2" + "src": "7097:13:2" } ], "name": "_removeAttendee", "nodeType": "FunctionDefinition", + "overrides": { + "id": 1082, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "7088:8:2" + }, "parameters": { - "id": 1034, + "id": 1081, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1033, + "id": 1080, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1065, - "src": "6978:15:2", + "scope": 1113, + "src": "7062:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10798,56 +10635,58 @@ "typeString": "address" }, "typeName": { - "id": 1032, + "id": 1079, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6978:7:2", + "src": "7062:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "6977:17:2" + "src": "7061:17:2" }, "returnParameters": { - "id": 1037, + "id": 1085, "nodeType": "ParameterList", "parameters": [], - "src": "7018:0:2" + "src": "7111:0:2" }, - "scope": 1066, - "src": "6953:374:2", + "scope": 1114, + "src": "7037:383:2", "stateMutability": "nonpayable", - "superFunction": 3016, + "virtual": false, "visibility": "internal" } ], - "scope": 1067, - "src": "868:6461:2" + "scope": 1115, + "src": "908:6514:2" } ], - "src": "0:7330:2" + "src": "40:7383:2" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.444Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.021Z", "devdoc": { "details": "This contract follows the \"withdraw pattern\". This means that payments are not automatically forwarded to the accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {withdraw} function. Future improvements: TODO: implement multisig to close the contract for new members. TODO: implement multisig to destroy the contract. TODO: implement multisig to remove members. TODO: implement multisig to transfer contract's funds to another address. See TODO on {splitPrize}.", + "kind": "dev", "methods": { "_unpause()": { "details": "Internal implementation that lifts the paused state." }, "balanceOf()": { - "return": "The balance of a team member" + "returns": { + "_0": "The balance of a team member" + } }, "constructor": { "details": "This class needs to be inherited - internal visibility", @@ -10856,13 +10695,19 @@ } }, "getActiveMembers()": { - "return": "An array of addresses representing the accounts of active members" + "returns": { + "_0": "An array of addresses representing the accounts of active members" + } }, "getActiveMembersCount()": { - "return": "{uint256} Count of active members" + "returns": { + "_0": "{uint256} Count of active members" + } }, "isPaused()": { - "return": "{true} if the contract is paused; otherwise, {false}." + "returns": { + "_0": "{true} if the contract is paused; otherwise, {false}." + } }, "pause()": { "details": "Implements the onlyAttendee modifier for access control." @@ -10876,9 +10721,22 @@ "withdraw(uint256)": { "details": "Implements the \"withdraw pattern\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. " } - } + }, + "version": 1 }, "userdoc": { + "events": { + "Deposit(address,uint256,uint256)": { + "notice": "Event emitted when the contract receives a deposit." + }, + "PrizeSplit(address,uint256,uint256,uint256,uint256)": { + "notice": "emitted when the contract's balance (prize) is split between active members." + }, + "Withdraw(address,uint256,uint256)": { + "notice": "emitted when a member withdraws from the contract." + } + }, + "kind": "user", "methods": { "balanceOf()": { "notice": "Get the balance of a team member" @@ -10908,6 +10766,7 @@ "notice": "Allows a team member to withdraw its funds from the contract." } }, - "notice": "Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes." + "notice": "Represents a Contest Team, allowing the team to receive prizes, and members to split and withdraw their prizes.", + "version": 1 } } diff --git a/build/contracts/ContestTeamFactory.json b/build/contracts/ContestTeamFactory.json index d63ea72..350b8c0 100644 --- a/build/contracts/ContestTeamFactory.json +++ b/build/contracts/ContestTeamFactory.json @@ -33,7 +33,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -49,12 +48,10 @@ "type": "address" } ], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getDeployedTeamContracts", "outputs": [ @@ -64,12 +61,10 @@ "type": "address[]" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -85,12 +80,10 @@ "type": "address" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "bytes32", @@ -106,86 +99,101 @@ "type": "address" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewContestTeamContract\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"createTeamContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDeployedTeamContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getTeamContractById\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"getTeamContractByName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\",\"methods\":{\"createTeamContract(bytes32)\":{\"details\":\"The param {name} is not linked or related to the name used by a team when registering for a hackathon.\",\"params\":{\"name\":\"Unique team's name, used internally for identification using a human-friendly text.\"},\"return\":\"The new contract's address.\"},\"getDeployedTeamContracts()\":{\"return\":\"List of deployed contract's addresses \"},\"getTeamContractById(uint256)\":{\"return\":\"An address representing a deployed contract\"},\"getTeamContractByName(bytes32)\":{\"return\":\"An address representing a deployed contract\"}}},\"userdoc\":{\"methods\":{\"createTeamContract(bytes32)\":{\"notice\":\"Creates and deploys a new ContestTeam contract.\"},\"getDeployedTeamContracts()\":{\"notice\":\"Get a list with the addresses of the deployed contracts.\"},\"getTeamContractById(uint256)\":{\"notice\":\"Get a contract address with the internal id.\"},\"getTeamContractByName(bytes32)\":{\"notice\":\"Get a contract address with the internal name.\"}},\"notice\":\"A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol\":\"ContestTeamFactory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0x174cd9f4df41a4b93e01da6375048474e92497b67fa9c9629d13470ecd14b442\",\"urls\":[\"bzz-raw://4d16463127dc2e71cc33acac4d3b1efd45ccf3d75e9e3d42e9bd7803d2ce3777\",\"dweb:/ipfs/QmVDEw7oZprgzxsPM6cFyPrBa3qE9CBQgCHZ6LPwNjE3fV\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol\":{\"keccak256\":\"0x15646e26863005abec9e51588e60ee8b503125f456263f99c72cf55bcd2276a7\",\"urls\":[\"bzz-raw://a2e78f87b6ac1424746e63b3cacac9ee65b0116412861d522929ba9e49ca7fa1\",\"dweb:/ipfs/QmSMRQDy4tid8BbNTLvkZWatNUUwoYMQGZ5EuErWGX3Ng7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x13c9c60ded6c062f523ae97e0ccce959b4445fb9350261ec676fcffa86f7cff0\",\"urls\":[\"bzz-raw://fe0a5cd6d67d4abbe45a965a57efb9fc3de00352f8e1345fdd6d24be6a372327\",\"dweb:/ipfs/Qma1rpyzs9xHQcqHSeXaDwM9ZCrwDdXZ74M62aoD4mBDEy\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0x6d8a1612736c806680064dbb20da3b25b19fb68b0ea157764abe8c4d6c2c1014\",\"urls\":[\"bzz-raw://07c3ea494972a5d0bc34e75068125e2d82f824b973d7c42edaec5fa361e318e3\",\"dweb:/ipfs/QmaH1BkrDJEDkd3uEyTT42h39cGBrGrMCXw1YdaqaFQUsv\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50611942806100206000396000f3fe60806040526004361061003f5760003560e01c806313bfb2ae14610044578063270603eb146100a95780633f3abe74146100e257806371629c401461010c575b600080fd5b34801561005057600080fd5b50610059610136565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561009557818101518382015260200161007d565b505050509050019250505060405180910390f35b6100c6600480360360208110156100bf57600080fd5b5035610198565b604080516001600160a01b039092168252519081900360200190f35b3480156100ee57600080fd5b506100c66004803603602081101561010557600080fd5b5035610358565b34801561011857600080fd5b506100c66004803603602081101561012f57600080fd5b50356103d5565b6060600080548060200260200160405190810160405280929190818152602001828054801561018e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610170575b5050505050905090565b60008180821a60f81b6001600160f81b0319166101f8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b60008381526001602052604090205483906001600160a01b031615610264576040805162461bcd60e51b815260206004820152601860248201527f5465616d206e616d6520616c726561647920696e207573650000000000000000604482015290519081900360640190fd5b6000805460405190919033906102799061040c565b6001600160a01b03909116815260405190819003602001906000f0801580156102a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558a8452602092835260409384902080549091168217905582518681529182018a90528183015233606082015290519192507f78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc919081900360800190a195945050505050565b60008180821a60f81b6001600160f81b0319166103b8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b6000805482106103e457600080fd5b600082815481106103f157fe5b6000918252602090912001546001600160a01b031692915050565b6114f48061041a8339019056fe60806040523480156200001157600080fd5b50604051620014f4380380620014f4833981810160405260208110156200003757600080fd5b5051806001600160a01b038116620000b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000c4816001600160e01b03620000d616565b50506001805460ff19169055620003db565b60015460ff16156200014957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6200015f81620001e360201b62000d811760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff191683179055600354620001dd92909162000235811b62000b1b17901c565b60035550565b620001fe816000620002b160201b62000e9f1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015620002aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620002c682826001600160e01b036200035816565b156200033357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620014d26022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6110e780620003eb6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610599565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105e9565b34801561014757600080fd5b506100dc6106f6565b34801561015c57600080fd5b50610165610744565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b0316610817565b604080519115158252519081900360200190f35b34801561020857600080fd5b5061021161082f565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc610889565b34801561024457600080fd5b506102116108d5565b34801561025957600080fd5b506101e86108db565b6100dc6108e4565b34801561027657600080fd5b506100dc61095c565b34801561028b57600080fd5b506100dc610965565b61029d33610817565b6102d85760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60065460009061033d9030319063ffffffff6109f416565b905060008111610394576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103ab60035483610a5190919063ffffffff16565b9050600081116103f6576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040482600354610abb565b90506000805b6002548110156104b65760006002828154811061042357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104ad576001600160a01b038116600090815260056020526040902054610481908663ffffffff610b1b16565b6001600160a01b0382166000908152600560205260409020556104aa838663ffffffff610b1b16565b92505b5060010161040a565b506006546104ca908563ffffffff610b1b16565b60065580821461050b5760405162461bcd60e51b8152600401808060200182810382526024815260200180610fa96024913960400191505060405180910390fd5b60065430311461054c5760405162461bcd60e51b815260040180806020018281038252602a815260200180610fcd602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105a233610817565b6105dd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b6105e681610b75565b50565b33600090815260056020526040902054811115610642576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b33600090815260056020526040902054610662818363ffffffff6109f416565b33600090815260056020526040902081905560065490915061068a908363ffffffff6109f416565b600655604051339083156108fc029084906000818181858888f193505050501580156106ba573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106ff33610817565b61073a5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610c3f565b565b600254600354606091101561075857600080fd5b6060600354604051908082528060200260200182016040528015610786578160200160208202803883390190505b50905060005b600254811015610811576000600282815481106107a557fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561080857808383815181106107e757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b5060010161078c565b50905090565b6000610829818363ffffffff610c4716565b92915050565b600061083a33610817565b6108755760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b503360009081526005602052604090205490565b61089233610817565b6108cd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610cae565b60035490565b60015460ff1690565b600034116109235760405162461bcd60e51b8152600401808060200182810382526021815260200180610f886021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61074233610cb6565b60015460ff166109b5576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610a4b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610aa7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610ab257fe5b04949350505050565b600082610aca57506000610829565b82820282848281610ad757fe5b0414610b145760405162461bcd60e51b81526004018080602001828103825260218152602001806110186021913960400191505060405180910390fd5b9392505050565b600082820183811015610b14576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610bc2576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610bcb81610d81565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610c3991610b1b565b60035550565b610742610965565b60006001600160a01b038216610c8e5760405162461bcd60e51b81526004018080602001828103825260228152602001806110396022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610742610dc9565b60015460ff1615610d03576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610d445760405162461bcd60e51b815260040180806020018281038252602781526020018061108c6027913960400191505060405180910390fd5b610d4d81610e57565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610c3990600163ffffffff6109f416565b610d9260008263ffffffff610e9f16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610e16576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610e6860008263ffffffff610f2016565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610ea98282610c47565b15610efb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f2a8282610c47565b610f655760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820f829eabddfeab00c29dfeb8d3c9a156ee2ecb5d00f8b928c47df7bd82e1b7f0564736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158202d7f30aa1c6239034c085334f077cee177574321712821b96216c2a4b72ea17f64736f6c634300050c0032", - "deployedBytecode": "0x60806040526004361061003f5760003560e01c806313bfb2ae14610044578063270603eb146100a95780633f3abe74146100e257806371629c401461010c575b600080fd5b34801561005057600080fd5b50610059610136565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561009557818101518382015260200161007d565b505050509050019250505060405180910390f35b6100c6600480360360208110156100bf57600080fd5b5035610198565b604080516001600160a01b039092168252519081900360200190f35b3480156100ee57600080fd5b506100c66004803603602081101561010557600080fd5b5035610358565b34801561011857600080fd5b506100c66004803603602081101561012f57600080fd5b50356103d5565b6060600080548060200260200160405190810160405280929190818152602001828054801561018e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610170575b5050505050905090565b60008180821a60f81b6001600160f81b0319166101f8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b60008381526001602052604090205483906001600160a01b031615610264576040805162461bcd60e51b815260206004820152601860248201527f5465616d206e616d6520616c726561647920696e207573650000000000000000604482015290519081900360640190fd5b6000805460405190919033906102799061040c565b6001600160a01b03909116815260405190819003602001906000f0801580156102a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558a8452602092835260409384902080549091168217905582518681529182018a90528183015233606082015290519192507f78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc919081900360800190a195945050505050565b60008180821a60f81b6001600160f81b0319166103b8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b6000805482106103e457600080fd5b600082815481106103f157fe5b6000918252602090912001546001600160a01b031692915050565b6114f48061041a8339019056fe60806040523480156200001157600080fd5b50604051620014f4380380620014f4833981810160405260208110156200003757600080fd5b5051806001600160a01b038116620000b057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000c4816001600160e01b03620000d616565b50506001805460ff19169055620003db565b60015460ff16156200014957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6200015f81620001e360201b62000d811760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff191683179055600354620001dd92909162000235811b62000b1b17901c565b60035550565b620001fe816000620002b160201b62000e9f1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015620002aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620002c682826001600160e01b036200035816565b156200033357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620014d26022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6110e780620003eb6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610599565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105e9565b34801561014757600080fd5b506100dc6106f6565b34801561015c57600080fd5b50610165610744565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b0316610817565b604080519115158252519081900360200190f35b34801561020857600080fd5b5061021161082f565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc610889565b34801561024457600080fd5b506102116108d5565b34801561025957600080fd5b506101e86108db565b6100dc6108e4565b34801561027657600080fd5b506100dc61095c565b34801561028b57600080fd5b506100dc610965565b61029d33610817565b6102d85760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60065460009061033d9030319063ffffffff6109f416565b905060008111610394576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103ab60035483610a5190919063ffffffff16565b9050600081116103f6576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040482600354610abb565b90506000805b6002548110156104b65760006002828154811061042357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104ad576001600160a01b038116600090815260056020526040902054610481908663ffffffff610b1b16565b6001600160a01b0382166000908152600560205260409020556104aa838663ffffffff610b1b16565b92505b5060010161040a565b506006546104ca908563ffffffff610b1b16565b60065580821461050b5760405162461bcd60e51b8152600401808060200182810382526024815260200180610fa96024913960400191505060405180910390fd5b60065430311461054c5760405162461bcd60e51b815260040180806020018281038252602a815260200180610fcd602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105a233610817565b6105dd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b6105e681610b75565b50565b33600090815260056020526040902054811115610642576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b33600090815260056020526040902054610662818363ffffffff6109f416565b33600090815260056020526040902081905560065490915061068a908363ffffffff6109f416565b600655604051339083156108fc029084906000818181858888f193505050501580156106ba573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106ff33610817565b61073a5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610c3f565b565b600254600354606091101561075857600080fd5b6060600354604051908082528060200260200182016040528015610786578160200160208202803883390190505b50905060005b600254811015610811576000600282815481106107a557fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561080857808383815181106107e757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b5060010161078c565b50905090565b6000610829818363ffffffff610c4716565b92915050565b600061083a33610817565b6108755760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b503360009081526005602052604090205490565b61089233610817565b6108cd5760405162461bcd60e51b815260040180806020018281038252603181526020018061105b6031913960400191505060405180910390fd5b610742610cae565b60035490565b60015460ff1690565b600034116109235760405162461bcd60e51b8152600401808060200182810382526021815260200180610f886021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61074233610cb6565b60015460ff166109b5576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610a4b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610aa7576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610ab257fe5b04949350505050565b600082610aca57506000610829565b82820282848281610ad757fe5b0414610b145760405162461bcd60e51b81526004018080602001828103825260218152602001806110186021913960400191505060405180910390fd5b9392505050565b600082820183811015610b14576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610bc2576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610bcb81610d81565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610c3991610b1b565b60035550565b610742610965565b60006001600160a01b038216610c8e5760405162461bcd60e51b81526004018080602001828103825260228152602001806110396022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610742610dc9565b60015460ff1615610d03576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610d445760405162461bcd60e51b815260040180806020018281038252602781526020018061108c6027913960400191505060405180910390fd5b610d4d81610e57565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610c3990600163ffffffff6109f416565b610d9260008263ffffffff610e9f16565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610e16576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610e6860008263ffffffff610f2016565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610ea98282610c47565b15610efb576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610f2a8282610c47565b610f655760405162461bcd60e51b8152600401808060200182810382526021815260200180610ff76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820f829eabddfeab00c29dfeb8d3c9a156ee2ecb5d00f8b928c47df7bd82e1b7f0564736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158202d7f30aa1c6239034c085334f077cee177574321712821b96216c2a4b72ea17f64736f6c634300050c0032", - "sourceMap": "360:2348:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;360:2348:5;;;;;;;", - "deployedSourceMap": "360:2348:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2017:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2017:112:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2017:112:5;;;;;;;;;;;;;;;;;1388:480;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1388:480:5;;:::i;:::-;;;;-1:-1:-1;;;;;1388:480:5;;;;;;;;;;;;;;2571:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2571:135:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2571:135:5;;:::i;2271:156::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2271:156:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2271:156:5;;:::i;2017:112::-;2074:16;2109:13;2102:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2102:20:5;;;;;;;;;;;;;;;;;;;;;;;2017:112;:::o;1388:480::-;1494:7;1458:4;;1494:7;799;;;-1:-1:-1;;;;;;799:12:5;791:50;;;;;-1:-1:-1;;;791:50:5;;;;;;;;;;;;-1:-1:-1;;;791:50:5;;;;;;;;;;;;;;;1005:1;976:17;;;:11;:17;;;;;;1479:4;;-1:-1:-1;;;;;976:17:5;:31;968:68;;;;;-1:-1:-1;;;968:68:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1598:10;1611:20;;1667:27;;1611:20;;1598:10;1683;;1667:27;;;:::i;:::-;-1:-1:-1;;;;;1667:27:5;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1705:13:5;27:10:-1;;39:1;23:18;;;45:23;;1705:27:5;;;;;;-1:-1:-1;;;;;1705:27:5;;-1:-1:-1;;;;;;1705:27:5;;;;;;;;1742:17;;;1705:27;1742:17;;;;;;;;:27;;;;;;;;;1784:53;;;;;;;;;;;;;;;1826:10;1784:53;;;;;;1641:54;;-1:-1:-1;1784:53:5;;;;;;;;;;1854:7;1388:480;-1:-1:-1;;;;;1388:480:5:o;2571:135::-;2656:7;2641:4;;2656:7;799;;;-1:-1:-1;;;;;;799:12:5;791:50;;;;;-1:-1:-1;;;791:50:5;;;;;;;;;;;;-1:-1:-1;;;791:50:5;;;;;;;;;;;;;;;-1:-1:-1;;2682:17:5;;;;:11;:17;;;;;;-1:-1:-1;;;;;2682:17:5;;2571:135::o;2271:156::-;2333:7;2365:20;;2360:25;;2352:34;;;;;;2403:13;2417:2;2403:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2403:17:5;;2271:156;-1:-1:-1;;2271:156:5:o;360:2348::-;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../core/ContestTeam.sol\";\n\n/**\n @notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n @dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\n */\ncontract ContestTeamFactory {\n using SafeMath for uint256;\n\n address[] private deployedTeams;\n mapping(bytes32 => address) private teamsByName;\n\n /// @dev emitted when a new ContestTeam contract is deployed.\n event NewContestTeamContract(uint256 id, bytes32 name, address contractAddress, address creator);\n\n /// @dev Modifier to check if team name is not empty.\n modifier notEmptyName(bytes32 name) {\n require(name[0] != 0, \"Team name cannot be empty\");\n _;\n }\n\n /// @dev Modifier to check if team name is unique.\n modifier uniqueTeamName(bytes32 name) {\n require(teamsByName[name] == address(0), \"Team name already in use\");\n _;\n }\n\n /**\n @notice Creates and deploys a new ContestTeam contract.\n @param name Unique team's name, used internally for identification using a human-friendly text.\n @return The new contract's address.\n @dev The param {name} is not linked or related to the name used by a team when registering for a hackathon.\n */\n function createTeamContract(bytes32 name) public payable notEmptyName(name) uniqueTeamName(name) returns (address) {\n // TODO: insert check if the sent ether is enough to cover the car asset ...\n uint256 id = deployedTeams.length;\n address newTeam = address(new ContestTeam(msg.sender));\n deployedTeams.push(newTeam);\n teamsByName[name] = newTeam;\n emit NewContestTeamContract(id, name, newTeam, msg.sender);\n return newTeam;\n }\n\n /**\n @notice Get a list with the addresses of the deployed contracts.\n @return List of deployed contract's addresses \n */\n function getDeployedTeamContracts() public view returns (address[] memory) {\n return deployedTeams;\n }\n\n /**\n @notice Get a contract address with the internal id.\n @return An address representing a deployed contract\n */\n function getTeamContractById(uint256 id) public view returns (address) {\n require(id < deployedTeams.length);\n return deployedTeams[id];\n }\n\n /**\n @notice Get a contract address with the internal name.\n @return An address representing a deployed contract\n */\n function getTeamContractByName(bytes32 name) public view notEmptyName(name) returns (address) {\n return teamsByName[name];\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewContestTeamContract\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"createTeamContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeployedTeamContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getTeamContractById\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"getTeamContractByName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\",\"events\":{\"NewContestTeamContract(uint256,bytes32,address,address)\":{\"details\":\"emitted when a new ContestTeam contract is deployed.\"}},\"kind\":\"dev\",\"methods\":{\"createTeamContract(bytes32)\":{\"details\":\"The param {name} is not linked or related to the name used by a team when registering for a hackathon.\",\"params\":{\"name\":\"Unique team's name, used internally for identification using a human-friendly text.\"},\"returns\":{\"_0\":\"The new contract's address.\"}},\"getDeployedTeamContracts()\":{\"returns\":{\"_0\":\"List of deployed contract's addresses \"}},\"getTeamContractById(uint256)\":{\"returns\":{\"_0\":\"An address representing a deployed contract\"}},\"getTeamContractByName(bytes32)\":{\"returns\":{\"_0\":\"An address representing a deployed contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createTeamContract(bytes32)\":{\"notice\":\"Creates and deploys a new ContestTeam contract.\"},\"getDeployedTeamContracts()\":{\"notice\":\"Get a list with the addresses of the deployed contracts.\"},\"getTeamContractById(uint256)\":{\"notice\":\"Get a contract address with the internal id.\"},\"getTeamContractByName(bytes32)\":{\"notice\":\"Get a contract address with the internal name.\"}},\"notice\":\"A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol\":\"ContestTeamFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0xd1b449fc904fa0f595711cba0a16746a6c4932fce51d51df0c0409bef110a599\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a203265f84124273591308298b9e5c097ba3116d8e3755accd4fbf50d50a1b78\",\"dweb:/ipfs/QmWax7vpTquEcTzfGAorKH8gs2wWPHdpHMe6PdDMKWTLN4\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol\":{\"keccak256\":\"0x3511970767c69b4384eb9b402f7a42a7225f52886386ed10db0184dcae3cb960\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://384a046958bcefca01dbfb8fe87239c88a8f3829e9a0e468d6b1e5fa685efead\",\"dweb:/ipfs/QmeaGYj7zJNtUDTpyXKgvR6RHSszyJThm58CBzgqv43PrW\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0xe658c5869875103432729fd020763ede0557d94848fe421aa140050cfad0215c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f8cc47d690ed64cf8780b26b9d25cd945004831b1ade3be565e47b61d070bee\",\"dweb:/ipfs/QmZACTXi1S92e1tF8tXWi5oWKfptjwMTfDyRcJXDPRLUcZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0xa51bbee9262940c417d864967fc5b3c9e90fdb20848ec3afc04c30e1d2bf3e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://926e4555fa2fcf567df76509680bdf5600edc33335f263f11c46a297951d67dc\",\"dweb:/ipfs/QmPkhvmATnQ9KkiGxdohwdWET3RZVfvhDQek3M9ZzZxGtU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061193d806100206000396000f3fe60806040526004361061003f5760003560e01c806313bfb2ae14610044578063270603eb146100a95780633f3abe74146100e257806371629c401461010c575b600080fd5b34801561005057600080fd5b50610059610136565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561009557818101518382015260200161007d565b505050509050019250505060405180910390f35b6100c6600480360360208110156100bf57600080fd5b5035610198565b604080516001600160a01b039092168252519081900360200190f35b3480156100ee57600080fd5b506100c66004803603602081101561010557600080fd5b5035610358565b34801561011857600080fd5b506100c66004803603602081101561012f57600080fd5b50356103d5565b6060600080548060200260200160405190810160405280929190818152602001828054801561018e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610170575b5050505050905090565b60008180821a60f81b6001600160f81b0319166101f8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b60008381526001602052604090205483906001600160a01b031615610264576040805162461bcd60e51b815260206004820152601860248201527f5465616d206e616d6520616c726561647920696e207573650000000000000000604482015290519081900360640190fd5b6000805460405190919033906102799061040c565b6001600160a01b03909116815260405190819003602001906000f0801580156102a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558a8452602092835260409384902080549091168217905582518681529182018a90528183015233606082015290519192507f78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc919081900360800190a195945050505050565b60008180821a60f81b6001600160f81b0319166103b8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b6000805482106103e457600080fd5b600082815481106103f157fe5b6000918252602090912001546001600160a01b031692915050565b6114ee8061041a8339019056fe60806040523480156200001157600080fd5b50604051620014ee380380620014ee833981810160405260208110156200003757600080fd5b5051806001600160a01b03811662000096576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000a181620000b3565b50506001805460ff191690556200033c565b60015460ff161562000101576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b62000117816200019b60201b620009e51760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff19168317905560035462000195929091620001ed811b62000a2717901c565b60035550565b620001b68160006200024f60201b62000a881790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60008282018381101562000248576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200025b8282620002d3565b15620002ae576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200031c5760405162461bcd60e51b8152600401808060200182810382526022815260200180620014cc6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611180806200034c6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610585565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105d5565b34801561014757600080fd5b506100dc6106d6565b34801561015c57600080fd5b50610165610724565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b031661080e565b604080519115158252519081900360200190f35b34801561020857600080fd5b50610211610820565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc61087a565b34801561024457600080fd5b506102116108c6565b34801561025957600080fd5b506101e86108cc565b6100dc6108d5565b34801561027657600080fd5b506100dc61094d565b34801561028b57600080fd5b506100dc610956565b61029d3361080e565b6102d85760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600061033c60065447610b0990919063ffffffff16565b905060008111610393576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103aa60035483610b4b90919063ffffffff16565b9050600081116103f5576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040382600354610b8d565b90506000805b6002548110156104a95760006002828154811061042257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104a0576001600160a01b03811660009081526005602052604090205461047a9086610a27565b6001600160a01b03821660009081526005602052604090205561049d8386610a27565b92505b50600101610409565b506006546104b79085610a27565b6006558082146104f85760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b60065447146105385760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b61058e3361080e565b6105c95760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6105d281610be6565b50565b3360009081526005602052604090205481111561062e576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106488183610b09565b33600090815260056020526040902081905560065490915061066a9083610b09565b600655604051339083156108fc029084906000818181858888f1935050505015801561069a573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106df3361080e565b61071a5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610cb0565b565b600254600354606091101561073857600080fd5b600060035467ffffffffffffffff8111801561075357600080fd5b5060405190808252806020026020018201604052801561077d578160200160208202803683370190505b50905060005b6002548110156108085760006002828154811061079c57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156107ff57808383815181106107de57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610783565b50905090565b600061081a8183610cb8565b92915050565b600061082b3361080e565b6108665760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6108833361080e565b6108be5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610d1f565b60035490565b60015460ff1690565b600034116109145760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61072233610d27565b60015460ff166109a6576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6109f0600082610a88565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610a81576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610a928282610cb8565b15610ae4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610a8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b6000610a8183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e83565b600082610b9c5750600061081a565b82820282848281610ba957fe5b0414610a815760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b60015460ff1615610c33576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c3c816109e5565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610caa91610a27565b60035550565b610722610956565b60006001600160a01b038216610cff5760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610722610ee8565b60015460ff1615610d74576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610db55760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610dbe81610f76565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610caa906001610b09565b60008184841115610e7b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e40578181015183820152602001610e28565b50505050905090810190601f168015610e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610e40578181015183820152602001610e28565b506000838581610ede57fe5b0495945050505050565b60015460ff1615610f35576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f81600082610fb8565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610fc28282610cb8565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a26469706673582212206073f82e9979af49a2f747705c89b950815c4a887b1a4dd838708e7f0f08b60d64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220a1873822f18cb272d8cf7c73cf1f889635b74e9c2b445bdf9ab323e23644976664736f6c63430007060033", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c806313bfb2ae14610044578063270603eb146100a95780633f3abe74146100e257806371629c401461010c575b600080fd5b34801561005057600080fd5b50610059610136565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561009557818101518382015260200161007d565b505050509050019250505060405180910390f35b6100c6600480360360208110156100bf57600080fd5b5035610198565b604080516001600160a01b039092168252519081900360200190f35b3480156100ee57600080fd5b506100c66004803603602081101561010557600080fd5b5035610358565b34801561011857600080fd5b506100c66004803603602081101561012f57600080fd5b50356103d5565b6060600080548060200260200160405190810160405280929190818152602001828054801561018e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610170575b5050505050905090565b60008180821a60f81b6001600160f81b0319166101f8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b60008381526001602052604090205483906001600160a01b031615610264576040805162461bcd60e51b815260206004820152601860248201527f5465616d206e616d6520616c726561647920696e207573650000000000000000604482015290519081900360640190fd5b6000805460405190919033906102799061040c565b6001600160a01b03909116815260405190819003602001906000f0801580156102a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558a8452602092835260409384902080549091168217905582518681529182018a90528183015233606082015290519192507f78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc919081900360800190a195945050505050565b60008180821a60f81b6001600160f81b0319166103b8576040805162461bcd60e51b81526020600482015260196024820152785465616d206e616d652063616e6e6f7420626520656d70747960381b604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b6000805482106103e457600080fd5b600082815481106103f157fe5b6000918252602090912001546001600160a01b031692915050565b6114ee8061041a8339019056fe60806040523480156200001157600080fd5b50604051620014ee380380620014ee833981810160405260208110156200003757600080fd5b5051806001600160a01b03811662000096576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000a181620000b3565b50506001805460ff191690556200033c565b60015460ff161562000101576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b62000117816200019b60201b620009e51760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff19168317905560035462000195929091620001ed811b62000a2717901c565b60035550565b620001b68160006200024f60201b62000a881790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60008282018381101562000248576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200025b8282620002d3565b15620002ae576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200031c5760405162461bcd60e51b8152600401808060200182810382526022815260200180620014cc6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611180806200034c6000396000f3fe6080604052600436106100c25760003560e01c8063722713f71161007f578063b187bd2611610059578063b187bd261461024d578063d0e30db014610262578063fb1da5431461026a578063fc8234cb1461027f576100c2565b8063722713f7146101fc5780638456cb59146102235780638f7c851914610238576100c2565b806307057382146100c757806310246254146100de5780632e1a7d4d146101115780633f4ba83a1461013b5780634876aebc146101505780636cad2590146101b5575b600080fd5b3480156100d357600080fd5b506100dc610294565b005b3480156100ea57600080fd5b506100dc6004803603602081101561010157600080fd5b50356001600160a01b0316610585565b34801561011d57600080fd5b506100dc6004803603602081101561013457600080fd5b50356105d5565b34801561014757600080fd5b506100dc6106d6565b34801561015c57600080fd5b50610165610724565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101a1578181015183820152602001610189565b505050509050019250505060405180910390f35b3480156101c157600080fd5b506101e8600480360360208110156101d857600080fd5b50356001600160a01b031661080e565b604080519115158252519081900360200190f35b34801561020857600080fd5b50610211610820565b60408051918252519081900360200190f35b34801561022f57600080fd5b506100dc61087a565b34801561024457600080fd5b506102116108c6565b34801561025957600080fd5b506101e86108cc565b6100dc6108d5565b34801561027657600080fd5b506100dc61094d565b34801561028b57600080fd5b506100dc610956565b61029d3361080e565b6102d85760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610325576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600061033c60065447610b0990919063ffffffff16565b905060008111610393576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b60006103aa60035483610b4b90919063ffffffff16565b9050600081116103f5576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061040382600354610b8d565b90506000805b6002548110156104a95760006002828154811061042257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156104a0576001600160a01b03811660009081526005602052604090205461047a9086610a27565b6001600160a01b03821660009081526005602052604090205561049d8386610a27565b92505b50600101610409565b506006546104b79085610a27565b6006558082146104f85760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b60065447146105385760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b61058e3361080e565b6105c95760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6105d281610be6565b50565b3360009081526005602052604090205481111561062e576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106488183610b09565b33600090815260056020526040902081905560065490915061066a9083610b09565b600655604051339083156108fc029084906000818181858888f1935050505015801561069a573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6106df3361080e565b61071a5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610cb0565b565b600254600354606091101561073857600080fd5b600060035467ffffffffffffffff8111801561075357600080fd5b5060405190808252806020026020018201604052801561077d578160200160208202803683370190505b50905060005b6002548110156108085760006002828154811061079c57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff161515600114156107ff57808383815181106107de57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610783565b50905090565b600061081a8183610cb8565b92915050565b600061082b3361080e565b6108665760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6108833361080e565b6108be5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b610722610d1f565b60035490565b60015460ff1690565b600034116109145760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b61072233610d27565b60015460ff166109a6576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6109f0600082610a88565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610a81576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610a928282610cb8565b15610ae4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610a8183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dec565b6000610a8183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e83565b600082610b9c5750600061081a565b82820282848281610ba957fe5b0414610a815760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b60015460ff1615610c33576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c3c816109e5565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610caa91610a27565b60035550565b610722610956565b60006001600160a01b038216610cff5760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610722610ee8565b60015460ff1615610d74576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610db55760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610dbe81610f76565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610caa906001610b09565b60008184841115610e7b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e40578181015183820152602001610e28565b50505050905090810190601f168015610e6d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ed25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610e40578181015183820152602001610e28565b506000838581610ede57fe5b0495945050505050565b60015460ff1615610f35576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f81600082610fb8565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610fc28282610cb8565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a26469706673582212206073f82e9979af49a2f747705c89b950815c4a887b1a4dd838708e7f0f08b60d64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220a1873822f18cb272d8cf7c73cf1f889635b74e9c2b445bdf9ab323e23644976664736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "400:2348:5:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "400:2348:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2057:112;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1428:480;;;;;;;;;;;;;;;;-1:-1:-1;1428:480:5;;:::i;:::-;;;;-1:-1:-1;;;;;1428:480:5;;;;;;;;;;;;;;2611:135;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2611:135:5;;:::i;2311:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2311:156:5;;:::i;2057:112::-;2114:16;2149:13;2142:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2142:20:5;;;;;;;;;;;;;;;;;;;;;;;2057:112;:::o;1428:480::-;1534:7;1498:4;;1534:7;839;;;-1:-1:-1;;;;;;839:12:5;831:50;;;;;-1:-1:-1;;;831:50:5;;;;;;;;;;;;-1:-1:-1;;;831:50:5;;;;;;;;;;;;;;;1045:1:::1;1016:17:::0;;;:11:::1;:17;::::0;;;;;1519:4;;-1:-1:-1;;;;;1016:17:5::1;:31:::0;1008:68:::1;;;::::0;;-1:-1:-1;;;1008:68:5;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;1638:10:::2;1651:20:::0;;1707:27:::2;::::0;1651:20;;1638:10;1723::::2;::::0;1707:27:::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;;;;;1707:27:5;;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;::::2;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;1745:13:5::2;:27:::0;;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;-1:-1:-1;;;;;1745:27:5;::::2;-1:-1:-1::0;;;;;;1745:27:5;;::::2;::::0;::::2;::::0;;;1782:17;;;1745:27:::2;1782:17:::0;;;;;;;;:27;;;;::::2;::::0;::::2;::::0;;1824:53;;;;;;;::::2;::::0;;;;;;;1866:10:::2;1824:53:::0;;;;;;1681:54;;-1:-1:-1;1824:53:5::2;::::0;;;;;;;;::::2;1894:7:::0;1428:480;-1:-1:-1;;;;;1428:480:5:o;2611:135::-;2696:7;2681:4;;2696:7;839;;;-1:-1:-1;;;;;;839:12:5;831:50;;;;;-1:-1:-1;;;831:50:5;;;;;;;;;;;;-1:-1:-1;;;831:50:5;;;;;;;;;;;;;;;-1:-1:-1;;2722:17:5::1;::::0;;;:11:::1;:17;::::0;;;;;-1:-1:-1;;;;;2722:17:5::1;::::0;2611:135::o;2311:156::-;2373:7;2405:20;;2400:25;;2392:34;;;;;;2443:13;2457:2;2443:17;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2443:17:5;;2311:156;-1:-1:-1;;2311:156:5:o;-1:-1:-1:-;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\nimport \"../core/ContestTeam.sol\";\n\n/**\n @notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n @dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\n */\ncontract ContestTeamFactory {\n using SafeMath for uint256;\n\n address[] private deployedTeams;\n mapping(bytes32 => address) private teamsByName;\n\n /// @dev emitted when a new ContestTeam contract is deployed.\n event NewContestTeamContract(uint256 id, bytes32 name, address contractAddress, address creator);\n\n /// @dev Modifier to check if team name is not empty.\n modifier notEmptyName(bytes32 name) {\n require(name[0] != 0, \"Team name cannot be empty\");\n _;\n }\n\n /// @dev Modifier to check if team name is unique.\n modifier uniqueTeamName(bytes32 name) {\n require(teamsByName[name] == address(0), \"Team name already in use\");\n _;\n }\n\n /**\n @notice Creates and deploys a new ContestTeam contract.\n @param name Unique team's name, used internally for identification using a human-friendly text.\n @return The new contract's address.\n @dev The param {name} is not linked or related to the name used by a team when registering for a hackathon.\n */\n function createTeamContract(bytes32 name) public payable notEmptyName(name) uniqueTeamName(name) returns (address) {\n // TODO: insert check if the sent ether is enough to cover the car asset ...\n uint256 id = deployedTeams.length;\n address newTeam = address(new ContestTeam(msg.sender));\n deployedTeams.push(newTeam);\n teamsByName[name] = newTeam;\n emit NewContestTeamContract(id, name, newTeam, msg.sender);\n return newTeam;\n }\n\n /**\n @notice Get a list with the addresses of the deployed contracts.\n @return List of deployed contract's addresses \n */\n function getDeployedTeamContracts() public view returns (address[] memory) {\n return deployedTeams;\n }\n\n /**\n @notice Get a contract address with the internal id.\n @return An address representing a deployed contract\n */\n function getTeamContractById(uint256 id) public view returns (address) {\n require(id < deployedTeams.length);\n return deployedTeams[id];\n }\n\n /**\n @notice Get a contract address with the internal name.\n @return An address representing a deployed contract\n */\n function getTeamContractByName(bytes32 name) public view notEmptyName(name) returns (address) {\n return teamsByName[name];\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol", "exportedSymbols": { - "ContestTeamFactory": [2240] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "ContestTeamFactory": [2335], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2241, + "id": 2336, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2091, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2176, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "40:31:5" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2092, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2177, "nodeType": "ImportDirective", - "scope": 2241, - "sourceUnit": 4216, - "src": "25:59:5", + "scope": 2336, + "sourceUnit": 3815, + "src": "73:51:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "file": "../core/ContestTeam.sol", - "id": 2093, + "id": 2178, "nodeType": "ImportDirective", - "scope": 2241, - "sourceUnit": 1067, - "src": "86:33:5", + "scope": 2336, + "sourceUnit": 1115, + "src": "126:33:5", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [], - "contractDependencies": [1066], + "contractDependencies": [1114], "contractKind": "contract", - "documentation": "@notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "documentation": { + "id": 2179, + "nodeType": "StructuredDocumentation", + "src": "161:238:5", + "text": "@notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability." + }, "fullyImplemented": true, - "id": 2240, - "linearizedBaseContracts": [2240], + "id": 2335, + "linearizedBaseContracts": [2335], "name": "ContestTeamFactory", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2096, + "id": 2182, "libraryName": { - "contractScope": null, - "id": 2094, + "id": 2180, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "400:8:5", + "referencedDeclaration": 3814, + "src": "440:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "394:27:5", + "src": "434:27:5", "typeName": { - "id": 2095, + "id": 2181, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "413:7:5", + "src": "453:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -194,11 +202,12 @@ }, { "constant": false, - "id": 2099, + "id": 2185, + "mutability": "mutable", "name": "deployedTeams", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "427:31:5", + "scope": 2335, + "src": "467:31:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -207,35 +216,34 @@ }, "typeName": { "baseType": { - "id": 2097, + "id": 2183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "427:7:5", + "src": "467:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2098, - "length": null, + "id": 2184, "nodeType": "ArrayTypeName", - "src": "427:9:5", + "src": "467:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "private" }, { "constant": false, - "id": 2103, + "id": 2189, + "mutability": "mutable", "name": "teamsByName", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "464:47:5", + "scope": 2335, + "src": "504:47:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -243,28 +251,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 2102, + "id": 2188, "keyType": { - "id": 2100, + "id": 2186, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "472:7:5", + "src": "512:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "464:27:5", + "src": "504:27:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 2101, + "id": 2187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:5", + "src": "523:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -272,27 +280,32 @@ } } }, - "value": null, "visibility": "private" }, { "anonymous": false, - "documentation": "@dev emitted when a new ContestTeam contract is deployed.", - "id": 2113, + "documentation": { + "id": 2190, + "nodeType": "StructuredDocumentation", + "src": "558:61:5", + "text": "@dev emitted when a new ContestTeam contract is deployed." + }, + "id": 2200, "name": "NewContestTeamContract", "nodeType": "EventDefinition", "parameters": { - "id": 2112, + "id": 2199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2105, + "id": 2192, "indexed": false, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "613:10:5", + "scope": 2200, + "src": "653:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -300,26 +313,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2104, + "id": 2191, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "613:7:5", + "src": "653:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2107, + "id": 2194, "indexed": false, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "625:12:5", + "scope": 2200, + "src": "665:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -327,26 +340,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2106, + "id": 2193, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "625:7:5", + "src": "665:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2109, + "id": 2196, "indexed": false, + "mutability": "mutable", "name": "contractAddress", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "639:23:5", + "scope": 2200, + "src": "679:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -354,27 +367,27 @@ "typeString": "address" }, "typeName": { - "id": 2108, + "id": 2195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "639:7:5", + "src": "679:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2111, + "id": 2198, "indexed": false, + "mutability": "mutable", "name": "creator", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "664:15:5", + "scope": 2200, + "src": "704:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -382,73 +395,66 @@ "typeString": "address" }, "typeName": { - "id": 2110, + "id": 2197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:5", + "src": "704:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "612:68:5" + "src": "652:68:5" }, - "src": "584:97:5" + "src": "624:97:5" }, { "body": { - "id": 2127, + "id": 2215, "nodeType": "Block", - "src": "781:78:5", + "src": "821:78:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 2122, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2118, + "id": 2206, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "799:4:5", + "referencedDeclaration": 2203, + "src": "839:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2120, + "id": 2208, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2119, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "804:1:5", - "subdenomination": null, + "src": "844:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -460,7 +466,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "799:7:5", + "src": "839:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -469,41 +475,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2121, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "810:1:5", - "subdenomination": null, + "src": "850:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "799:12:5", + "src": "839:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d652063616e6e6f7420626520656d707479", - "id": 2123, + "id": 2211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "813:27:5", - "subdenomination": null, + "src": "853:27:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_063aa5aa991fa0fd3a1737bc16a024d36bf324d0007364da5abd91e80a783f7c", "typeString": "literal_string \"Team name cannot be empty\"" @@ -522,18 +524,18 @@ "typeString": "literal_string \"Team name cannot be empty\"" } ], - "id": 2117, + "id": 2205, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "791:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "831:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2124, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -541,38 +543,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "791:50:5", + "src": "831:50:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2125, + "id": 2213, "nodeType": "ExpressionStatement", - "src": "791:50:5" + "src": "831:50:5" }, { - "id": 2126, + "id": 2214, "nodeType": "PlaceholderStatement", - "src": "851:1:5" + "src": "891:1:5" } ] }, - "documentation": "@dev Modifier to check if team name is not empty.", - "id": 2128, + "documentation": { + "id": 2201, + "nodeType": "StructuredDocumentation", + "src": "727:53:5", + "text": "@dev Modifier to check if team name is not empty." + }, + "id": 2216, "name": "notEmptyName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2116, + "id": 2204, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2115, + "id": 2203, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "767:12:5", + "scope": 2216, + "src": "807:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -580,69 +589,64 @@ "typeString": "bytes32" }, "typeName": { - "id": 2114, + "id": 2202, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "767:7:5", + "src": "807:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "766:14:5" + "src": "806:14:5" }, - "src": "745:114:5", + "src": "785:114:5", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2144, + "id": 2234, "nodeType": "Block", - "src": "958:96:5", + "src": "998:96:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2139, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2133, + "id": 2222, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "976:11:5", + "referencedDeclaration": 2189, + "src": "1016:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2135, + "id": 2224, "indexExpression": { - "argumentTypes": null, - "id": 2134, + "id": 2223, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "988:4:5", + "referencedDeclaration": 2219, + "src": "1028:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -653,7 +657,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "976:17:5", + "src": "1016:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -662,20 +666,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2137, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1005:1:5", - "subdenomination": null, + "src": "1045:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -690,20 +691,26 @@ "typeString": "int_const 0" } ], - "id": 2136, + "id": 2226, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "997:7:5", + "src": "1037:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1037:7:5", + "typeDescriptions": {} + } }, - "id": 2138, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": true, @@ -711,30 +718,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "997:10:5", + "src": "1037:10:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "976:31:5", + "src": "1016:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d6520616c726561647920696e20757365", - "id": 2140, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1009:26:5", - "subdenomination": null, + "src": "1049:26:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2cc71f025520728987aa1e3b40725b7bfb1dfd53c30488207d0c64b007ec9e0", "typeString": "literal_string \"Team name already in use\"" @@ -753,18 +759,18 @@ "typeString": "literal_string \"Team name already in use\"" } ], - "id": 2132, + "id": 2221, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "968:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1008:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2141, + "id": 2231, "isConstant": false, "isLValue": false, "isPure": false, @@ -772,38 +778,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "968:68:5", + "src": "1008:68:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2142, + "id": 2232, "nodeType": "ExpressionStatement", - "src": "968:68:5" + "src": "1008:68:5" }, { - "id": 2143, + "id": 2233, "nodeType": "PlaceholderStatement", - "src": "1046:1:5" + "src": "1086:1:5" } ] }, - "documentation": "@dev Modifier to check if team name is unique.", - "id": 2145, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "905:50:5", + "text": "@dev Modifier to check if team name is unique." + }, + "id": 2235, "name": "uniqueTeamName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2131, + "id": 2220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2130, + "id": 2219, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "944:12:5", + "scope": 2235, + "src": "984:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -811,40 +824,41 @@ "typeString": "bytes32" }, "typeName": { - "id": 2129, + "id": 2218, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "944:7:5", + "src": "984:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "943:14:5" + "src": "983:14:5" }, - "src": "920:134:5", + "src": "960:134:5", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2195, + "id": 2287, "nodeType": "Block", - "src": "1503:365:5", + "src": "1543:365:5", "statements": [ { - "assignments": [2159], + "assignments": [2250], "declarations": [ { "constant": false, - "id": 2159, + "id": 2250, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "1598:10:5", + "scope": 2287, + "src": "1638:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -852,62 +866,59 @@ "typeString": "uint256" }, "typeName": { - "id": 2158, + "id": 2249, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1598:7:5", + "src": "1638:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 2162, + "id": 2253, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2160, + "id": 2251, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "1611:13:5", + "referencedDeclaration": 2185, + "src": "1651:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2161, + "id": 2252, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1611:20:5", + "src": "1651:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1598:33:5" + "src": "1638:33:5" }, { - "assignments": [2164], + "assignments": [2255], "declarations": [ { "constant": false, - "id": 2164, + "id": 2255, + "mutability": "mutable", "name": "newTeam", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "1641:15:5", + "scope": 2287, + "src": "1681:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -915,51 +926,45 @@ "typeString": "address" }, "typeName": { - "id": 2163, + "id": 2254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1641:7:5", + "src": "1681:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 2172, + "id": 2264, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2168, + "id": 2260, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1683:3:5", + "referencedDeclaration": 4294967281, + "src": "1723:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2169, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1683:10:5", + "src": "1723:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -973,31 +978,30 @@ "typeString": "address payable" } ], - "id": 2167, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1667:15:5", + "src": "1707:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ContestTeam_$1066_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ContestTeam_$1114_$", "typeString": "function (address) returns (contract ContestTeam)" }, "typeName": { - "contractScope": null, - "id": 2166, + "id": 2258, "name": "ContestTeam", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1066, - "src": "1671:11:5", + "referencedDeclaration": 1114, + "src": "1711:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } }, - "id": 2170, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -1005,9 +1009,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1667:27:5", + "src": "1707:27:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -1015,24 +1020,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 2165, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1659:7:5", + "src": "1699:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:5", + "typeDescriptions": {} + } }, - "id": 2171, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": false, @@ -1040,27 +1051,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1659:36:5", + "src": "1699:36:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1641:54:5" + "src": "1681:54:5" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2176, + "id": 2268, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1724:7:5", + "referencedDeclaration": 2255, + "src": "1764:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1075,33 +1085,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 2173, + "id": 2265, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "1705:13:5", + "referencedDeclaration": 2185, + "src": "1745:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2175, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1705:18:5", + "src": "1745:18:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2177, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": false, @@ -1109,48 +1117,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1705:27:5", + "src": "1745:27:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2178, + "id": 2270, "nodeType": "ExpressionStatement", - "src": "1705:27:5" + "src": "1745:27:5" }, { "expression": { - "argumentTypes": null, - "id": 2183, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2179, + "id": 2271, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "1742:11:5", + "referencedDeclaration": 2189, + "src": "1782:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2181, + "id": 2273, "indexExpression": { - "argumentTypes": null, - "id": 2180, + "id": 2272, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1754:4:5", + "referencedDeclaration": 2238, + "src": "1794:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1161,7 +1166,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1742:17:5", + "src": "1782:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1170,95 +1175,87 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 2182, + "id": 2274, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1762:7:5", + "referencedDeclaration": 2255, + "src": "1802:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1742:27:5", + "src": "1782:27:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2184, + "id": 2276, "nodeType": "ExpressionStatement", - "src": "1742:27:5" + "src": "1782:27:5" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2186, + "id": 2278, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1807:2:5", + "referencedDeclaration": 2250, + "src": "1847:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2187, + "id": 2279, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1811:4:5", + "referencedDeclaration": 2238, + "src": "1851:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2188, + "id": 2280, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1817:7:5", + "referencedDeclaration": 2255, + "src": "1857:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2189, + "id": 2281, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1826:3:5", + "referencedDeclaration": 4294967281, + "src": "1866:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2190, + "id": 2282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1826:10:5", + "src": "1866:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1284,18 +1281,18 @@ "typeString": "address payable" } ], - "id": 2185, + "id": 2277, "name": "NewContestTeamContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "1784:22:5", + "referencedDeclaration": 2200, + "src": "1824:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256,bytes32,address,address)" } }, - "id": 2191, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": false, @@ -1303,122 +1300,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1784:53:5", + "src": "1824:53:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2192, + "id": 2284, "nodeType": "EmitStatement", - "src": "1779:58:5" + "src": "1819:58:5" }, { "expression": { - "argumentTypes": null, - "id": 2193, + "id": 2285, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1854:7:5", + "referencedDeclaration": 2255, + "src": "1894:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2157, - "id": 2194, + "functionReturnParameters": 2248, + "id": 2286, "nodeType": "Return", - "src": "1847:14:5" + "src": "1887:14:5" } ] }, - "documentation": "@notice Creates and deploys a new ContestTeam contract.\n@param name Unique team's name, used internally for identification using a human-friendly text.\n@return The new contract's address.\n@dev The param {name} is not linked or related to the name used by a team when registering for a hackathon.", - "id": 2196, + "documentation": { + "id": 2236, + "nodeType": "StructuredDocumentation", + "src": "1100:323:5", + "text": "@notice Creates and deploys a new ContestTeam contract.\n@param name Unique team's name, used internally for identification using a human-friendly text.\n@return The new contract's address.\n@dev The param {name} is not linked or related to the name used by a team when registering for a hackathon." + }, + "functionSelector": "270603eb", + "id": 2288, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2150, + "id": 2241, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1458:4:5", + "referencedDeclaration": 2238, + "src": "1498:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2151, + "id": 2242, "modifierName": { - "argumentTypes": null, - "id": 2149, + "id": 2240, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "1445:12:5", + "referencedDeclaration": 2216, + "src": "1485:12:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1445:18:5" + "src": "1485:18:5" }, { "arguments": [ { - "argumentTypes": null, - "id": 2153, + "id": 2244, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1479:4:5", + "referencedDeclaration": 2238, + "src": "1519:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2154, + "id": 2245, "modifierName": { - "argumentTypes": null, - "id": 2152, + "id": 2243, "name": "uniqueTeamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "1464:14:5", + "referencedDeclaration": 2235, + "src": "1504:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1464:20:5" + "src": "1504:20:5" } ], "name": "createTeamContract", "nodeType": "FunctionDefinition", "parameters": { - "id": 2148, + "id": 2239, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2147, + "id": 2238, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "1416:12:5", + "scope": 2288, + "src": "1456:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1426,32 +1426,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2146, + "id": 2237, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1416:7:5", + "src": "1456:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1415:14:5" + "src": "1455:14:5" }, "returnParameters": { - "id": 2157, + "id": 2248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2156, + "id": 2247, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "1494:7:5", + "scope": 2288, + "src": "1534:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1459,79 +1459,84 @@ "typeString": "address" }, "typeName": { - "id": 2155, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1494:7:5", + "src": "1534:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1493:9:5" + "src": "1533:9:5" }, - "scope": 2240, - "src": "1388:480:5", + "scope": 2335, + "src": "1428:480:5", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2204, + "id": 2297, "nodeType": "Block", - "src": "2092:37:5", + "src": "2132:37:5", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2202, + "id": 2295, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2109:13:5", + "referencedDeclaration": 2185, + "src": "2149:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 2201, - "id": 2203, + "functionReturnParameters": 2294, + "id": 2296, "nodeType": "Return", - "src": "2102:20:5" + "src": "2142:20:5" } ] }, - "documentation": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses ", - "id": 2205, + "documentation": { + "id": 2289, + "nodeType": "StructuredDocumentation", + "src": "1914:138:5", + "text": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses " + }, + "functionSelector": "13bfb2ae", + "id": 2298, "implemented": true, "kind": "function", "modifiers": [], "name": "getDeployedTeamContracts", "nodeType": "FunctionDefinition", "parameters": { - "id": 2197, + "id": 2290, "nodeType": "ParameterList", "parameters": [], - "src": "2050:2:5" + "src": "2090:2:5" }, "returnParameters": { - "id": 2201, + "id": 2294, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2200, + "id": 2293, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2205, - "src": "2074:16:5", + "scope": 2298, + "src": "2114:16:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1540,66 +1545,61 @@ }, "typeName": { "baseType": { - "id": 2198, + "id": 2291, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2074:7:5", + "src": "2114:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2199, - "length": null, + "id": 2292, "nodeType": "ArrayTypeName", - "src": "2074:9:5", + "src": "2114:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2073:18:5" + "src": "2113:18:5" }, - "scope": 2240, - "src": "2017:112:5", + "scope": 2335, + "src": "2057:112:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2223, + "id": 2317, "nodeType": "Block", - "src": "2342:85:5", + "src": "2382:85:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2213, + "id": 2307, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "2360:2:5", + "referencedDeclaration": 2301, + "src": "2400:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1608,35 +1608,32 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2214, + "id": 2308, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2365:13:5", + "referencedDeclaration": 2185, + "src": "2405:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2215, + "id": 2309, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2365:20:5", + "src": "2405:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2360:25:5", + "src": "2400:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1650,18 +1647,18 @@ "typeString": "bool" } ], - "id": 2212, + "id": 2306, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4233, - "src": "2352:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2392:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2217, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, @@ -1669,41 +1666,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2352:34:5", + "src": "2392:34:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2218, + "id": 2312, "nodeType": "ExpressionStatement", - "src": "2352:34:5" + "src": "2392:34:5" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2219, + "id": 2313, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2403:13:5", + "referencedDeclaration": 2185, + "src": "2443:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2221, + "id": 2315, "indexExpression": { - "argumentTypes": null, - "id": 2220, + "id": 2314, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "2417:2:5", + "referencedDeclaration": 2301, + "src": "2457:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1714,37 +1709,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2403:17:5", + "src": "2443:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2211, - "id": 2222, + "functionReturnParameters": 2305, + "id": 2316, "nodeType": "Return", - "src": "2396:24:5" + "src": "2436:24:5" } ] }, - "documentation": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract", - "id": 2224, + "documentation": { + "id": 2299, + "nodeType": "StructuredDocumentation", + "src": "2175:131:5", + "text": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract" + }, + "functionSelector": "71629c40", + "id": 2318, "implemented": true, "kind": "function", "modifiers": [], "name": "getTeamContractById", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 2302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 2301, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "2300:10:5", + "scope": 2318, + "src": "2340:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1752,32 +1754,32 @@ "typeString": "uint256" }, "typeName": { - "id": 2206, + "id": 2300, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2300:7:5", + "src": "2340:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2299:12:5" + "src": "2339:12:5" }, "returnParameters": { - "id": 2211, + "id": 2305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2210, + "id": 2304, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "2333:7:5", + "scope": 2318, + "src": "2373:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1785,59 +1787,55 @@ "typeString": "address" }, "typeName": { - "id": 2209, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2333:7:5", + "src": "2373:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2332:9:5" + "src": "2372:9:5" }, - "scope": 2240, - "src": "2271:156:5", + "scope": 2335, + "src": "2311:156:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2238, + "id": 2333, "nodeType": "Block", - "src": "2665:41:5", + "src": "2705:41:5", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2234, + "id": 2329, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "2682:11:5", + "referencedDeclaration": 2189, + "src": "2722:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2236, + "id": 2331, "indexExpression": { - "argumentTypes": null, - "id": 2235, + "id": 2330, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2694:4:5", + "referencedDeclaration": 2321, + "src": "2734:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1848,71 +1846,76 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2682:17:5", + "src": "2722:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2233, - "id": 2237, + "functionReturnParameters": 2328, + "id": 2332, "nodeType": "Return", - "src": "2675:24:5" + "src": "2715:24:5" } ] }, - "documentation": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract", - "id": 2239, + "documentation": { + "id": 2319, + "nodeType": "StructuredDocumentation", + "src": "2473:133:5", + "text": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract" + }, + "functionSelector": "3f3abe74", + "id": 2334, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2229, + "id": 2324, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2641:4:5", + "referencedDeclaration": 2321, + "src": "2681:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2230, + "id": 2325, "modifierName": { - "argumentTypes": null, - "id": 2228, + "id": 2323, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "2628:12:5", + "referencedDeclaration": 2216, + "src": "2668:12:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "2628:18:5" + "src": "2668:18:5" } ], "name": "getTeamContractByName", "nodeType": "FunctionDefinition", "parameters": { - "id": 2227, + "id": 2322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2226, + "id": 2321, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "2602:12:5", + "scope": 2334, + "src": "2642:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1920,32 +1923,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2225, + "id": 2320, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2602:7:5", + "src": "2642:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "2601:14:5" + "src": "2641:14:5" }, "returnParameters": { - "id": 2233, + "id": 2328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2232, + "id": 2327, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "2656:7:5", + "scope": 2334, + "src": "2696:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1953,103 +1956,115 @@ "typeString": "address" }, "typeName": { - "id": 2231, + "id": 2326, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2656:7:5", + "src": "2696:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2655:9:5" + "src": "2695:9:5" }, - "scope": 2240, - "src": "2571:135:5", + "scope": 2335, + "src": "2611:135:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2241, - "src": "360:2348:5" + "scope": 2336, + "src": "400:2348:5" } ], - "src": "0:2709:5" + "src": "40:2709:5" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/ContestTeamFactory.sol", "exportedSymbols": { - "ContestTeamFactory": [2240] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "ContestTeamFactory": [2335], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2241, + "id": 2336, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2091, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2176, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "40:31:5" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2092, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2177, "nodeType": "ImportDirective", - "scope": 2241, - "sourceUnit": 4216, - "src": "25:59:5", + "scope": 2336, + "sourceUnit": 3815, + "src": "73:51:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "file": "../core/ContestTeam.sol", - "id": 2093, + "id": 2178, "nodeType": "ImportDirective", - "scope": 2241, - "sourceUnit": 1067, - "src": "86:33:5", + "scope": 2336, + "sourceUnit": 1115, + "src": "126:33:5", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [], - "contractDependencies": [1066], + "contractDependencies": [1114], "contractKind": "contract", - "documentation": "@notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "documentation": { + "id": 2179, + "nodeType": "StructuredDocumentation", + "src": "161:238:5", + "text": "@notice A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability." + }, "fullyImplemented": true, - "id": 2240, - "linearizedBaseContracts": [2240], + "id": 2335, + "linearizedBaseContracts": [2335], "name": "ContestTeamFactory", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2096, + "id": 2182, "libraryName": { - "contractScope": null, - "id": 2094, + "id": 2180, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "400:8:5", + "referencedDeclaration": 3814, + "src": "440:8:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "394:27:5", + "src": "434:27:5", "typeName": { - "id": 2095, + "id": 2181, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "413:7:5", + "src": "453:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2058,11 +2073,12 @@ }, { "constant": false, - "id": 2099, + "id": 2185, + "mutability": "mutable", "name": "deployedTeams", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "427:31:5", + "scope": 2335, + "src": "467:31:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2071,35 +2087,34 @@ }, "typeName": { "baseType": { - "id": 2097, + "id": 2183, "name": "address", "nodeType": "ElementaryTypeName", - "src": "427:7:5", + "src": "467:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2098, - "length": null, + "id": 2184, "nodeType": "ArrayTypeName", - "src": "427:9:5", + "src": "467:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "private" }, { "constant": false, - "id": 2103, + "id": 2189, + "mutability": "mutable", "name": "teamsByName", "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "464:47:5", + "scope": 2335, + "src": "504:47:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2107,28 +2122,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 2102, + "id": 2188, "keyType": { - "id": 2100, + "id": 2186, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "472:7:5", + "src": "512:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "464:27:5", + "src": "504:27:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 2101, + "id": 2187, "name": "address", "nodeType": "ElementaryTypeName", - "src": "483:7:5", + "src": "523:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2136,27 +2151,32 @@ } } }, - "value": null, "visibility": "private" }, { "anonymous": false, - "documentation": "@dev emitted when a new ContestTeam contract is deployed.", - "id": 2113, + "documentation": { + "id": 2190, + "nodeType": "StructuredDocumentation", + "src": "558:61:5", + "text": "@dev emitted when a new ContestTeam contract is deployed." + }, + "id": 2200, "name": "NewContestTeamContract", "nodeType": "EventDefinition", "parameters": { - "id": 2112, + "id": 2199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2105, + "id": 2192, "indexed": false, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "613:10:5", + "scope": 2200, + "src": "653:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2164,26 +2184,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2104, + "id": 2191, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "613:7:5", + "src": "653:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2107, + "id": 2194, "indexed": false, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "625:12:5", + "scope": 2200, + "src": "665:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2191,26 +2211,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2106, + "id": 2193, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "625:7:5", + "src": "665:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2109, + "id": 2196, "indexed": false, + "mutability": "mutable", "name": "contractAddress", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "639:23:5", + "scope": 2200, + "src": "679:23:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2218,27 +2238,27 @@ "typeString": "address" }, "typeName": { - "id": 2108, + "id": 2195, "name": "address", "nodeType": "ElementaryTypeName", - "src": "639:7:5", + "src": "679:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2111, + "id": 2198, "indexed": false, + "mutability": "mutable", "name": "creator", "nodeType": "VariableDeclaration", - "scope": 2113, - "src": "664:15:5", + "scope": 2200, + "src": "704:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2246,73 +2266,66 @@ "typeString": "address" }, "typeName": { - "id": 2110, + "id": 2197, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:5", + "src": "704:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "612:68:5" + "src": "652:68:5" }, - "src": "584:97:5" + "src": "624:97:5" }, { "body": { - "id": 2127, + "id": 2215, "nodeType": "Block", - "src": "781:78:5", + "src": "821:78:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 2122, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2118, + "id": 2206, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "799:4:5", + "referencedDeclaration": 2203, + "src": "839:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2120, + "id": 2208, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2119, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "804:1:5", - "subdenomination": null, + "src": "844:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2324,7 +2337,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "799:7:5", + "src": "839:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2333,41 +2346,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2121, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "810:1:5", - "subdenomination": null, + "src": "850:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "799:12:5", + "src": "839:12:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d652063616e6e6f7420626520656d707479", - "id": 2123, + "id": 2211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "813:27:5", - "subdenomination": null, + "src": "853:27:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_063aa5aa991fa0fd3a1737bc16a024d36bf324d0007364da5abd91e80a783f7c", "typeString": "literal_string \"Team name cannot be empty\"" @@ -2386,18 +2395,18 @@ "typeString": "literal_string \"Team name cannot be empty\"" } ], - "id": 2117, + "id": 2205, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "791:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "831:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2124, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -2405,38 +2414,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "791:50:5", + "src": "831:50:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2125, + "id": 2213, "nodeType": "ExpressionStatement", - "src": "791:50:5" + "src": "831:50:5" }, { - "id": 2126, + "id": 2214, "nodeType": "PlaceholderStatement", - "src": "851:1:5" + "src": "891:1:5" } ] }, - "documentation": "@dev Modifier to check if team name is not empty.", - "id": 2128, + "documentation": { + "id": 2201, + "nodeType": "StructuredDocumentation", + "src": "727:53:5", + "text": "@dev Modifier to check if team name is not empty." + }, + "id": 2216, "name": "notEmptyName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2116, + "id": 2204, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2115, + "id": 2203, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2128, - "src": "767:12:5", + "scope": 2216, + "src": "807:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2444,69 +2460,64 @@ "typeString": "bytes32" }, "typeName": { - "id": 2114, + "id": 2202, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "767:7:5", + "src": "807:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "766:14:5" + "src": "806:14:5" }, - "src": "745:114:5", + "src": "785:114:5", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2144, + "id": 2234, "nodeType": "Block", - "src": "958:96:5", + "src": "998:96:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2139, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2133, + "id": 2222, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "976:11:5", + "referencedDeclaration": 2189, + "src": "1016:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2135, + "id": 2224, "indexExpression": { - "argumentTypes": null, - "id": 2134, + "id": 2223, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "988:4:5", + "referencedDeclaration": 2219, + "src": "1028:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2517,7 +2528,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "976:17:5", + "src": "1016:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2526,20 +2537,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2137, + "id": 2227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1005:1:5", - "subdenomination": null, + "src": "1045:1:5", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2554,20 +2562,26 @@ "typeString": "int_const 0" } ], - "id": 2136, + "id": 2226, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "997:7:5", + "src": "1037:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1037:7:5", + "typeDescriptions": {} + } }, - "id": 2138, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": true, @@ -2575,30 +2589,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "997:10:5", + "src": "1037:10:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "976:31:5", + "src": "1016:31:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d6520616c726561647920696e20757365", - "id": 2140, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1009:26:5", - "subdenomination": null, + "src": "1049:26:5", "typeDescriptions": { "typeIdentifier": "t_stringliteral_d2cc71f025520728987aa1e3b40725b7bfb1dfd53c30488207d0c64b007ec9e0", "typeString": "literal_string \"Team name already in use\"" @@ -2617,18 +2630,18 @@ "typeString": "literal_string \"Team name already in use\"" } ], - "id": 2132, + "id": 2221, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "968:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1008:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2141, + "id": 2231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2636,38 +2649,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "968:68:5", + "src": "1008:68:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2142, + "id": 2232, "nodeType": "ExpressionStatement", - "src": "968:68:5" + "src": "1008:68:5" }, { - "id": 2143, + "id": 2233, "nodeType": "PlaceholderStatement", - "src": "1046:1:5" + "src": "1086:1:5" } ] }, - "documentation": "@dev Modifier to check if team name is unique.", - "id": 2145, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "905:50:5", + "text": "@dev Modifier to check if team name is unique." + }, + "id": 2235, "name": "uniqueTeamName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2131, + "id": 2220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2130, + "id": 2219, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "944:12:5", + "scope": 2235, + "src": "984:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2675,40 +2695,41 @@ "typeString": "bytes32" }, "typeName": { - "id": 2129, + "id": 2218, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "944:7:5", + "src": "984:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "943:14:5" + "src": "983:14:5" }, - "src": "920:134:5", + "src": "960:134:5", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2195, + "id": 2287, "nodeType": "Block", - "src": "1503:365:5", + "src": "1543:365:5", "statements": [ { - "assignments": [2159], + "assignments": [2250], "declarations": [ { "constant": false, - "id": 2159, + "id": 2250, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "1598:10:5", + "scope": 2287, + "src": "1638:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2716,62 +2737,59 @@ "typeString": "uint256" }, "typeName": { - "id": 2158, + "id": 2249, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1598:7:5", + "src": "1638:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 2162, + "id": 2253, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2160, + "id": 2251, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "1611:13:5", + "referencedDeclaration": 2185, + "src": "1651:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2161, + "id": 2252, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1611:20:5", + "src": "1651:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1598:33:5" + "src": "1638:33:5" }, { - "assignments": [2164], + "assignments": [2255], "declarations": [ { "constant": false, - "id": 2164, + "id": 2255, + "mutability": "mutable", "name": "newTeam", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "1641:15:5", + "scope": 2287, + "src": "1681:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2779,51 +2797,45 @@ "typeString": "address" }, "typeName": { - "id": 2163, + "id": 2254, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1641:7:5", + "src": "1681:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 2172, + "id": 2264, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2168, + "id": 2260, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1683:3:5", + "referencedDeclaration": 4294967281, + "src": "1723:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2169, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1683:10:5", + "src": "1723:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2837,31 +2849,30 @@ "typeString": "address payable" } ], - "id": 2167, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1667:15:5", + "src": "1707:15:5", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ContestTeam_$1066_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_ContestTeam_$1114_$", "typeString": "function (address) returns (contract ContestTeam)" }, "typeName": { - "contractScope": null, - "id": 2166, + "id": 2258, "name": "ContestTeam", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1066, - "src": "1671:11:5", + "referencedDeclaration": 1114, + "src": "1711:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } }, - "id": 2170, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, @@ -2869,9 +2880,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1667:27:5", + "src": "1707:27:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } } @@ -2879,24 +2891,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } ], - "id": 2165, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1659:7:5", + "src": "1699:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2256, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1699:7:5", + "typeDescriptions": {} + } }, - "id": 2171, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": false, @@ -2904,27 +2922,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1659:36:5", + "src": "1699:36:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1641:54:5" + "src": "1681:54:5" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2176, + "id": 2268, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1724:7:5", + "referencedDeclaration": 2255, + "src": "1764:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2939,33 +2956,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 2173, + "id": 2265, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "1705:13:5", + "referencedDeclaration": 2185, + "src": "1745:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2175, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1705:18:5", + "src": "1745:18:5", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2177, + "id": 2269, "isConstant": false, "isLValue": false, "isPure": false, @@ -2973,48 +2988,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1705:27:5", + "src": "1745:27:5", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2178, + "id": 2270, "nodeType": "ExpressionStatement", - "src": "1705:27:5" + "src": "1745:27:5" }, { "expression": { - "argumentTypes": null, - "id": 2183, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2179, + "id": 2271, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "1742:11:5", + "referencedDeclaration": 2189, + "src": "1782:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2181, + "id": 2273, "indexExpression": { - "argumentTypes": null, - "id": 2180, + "id": 2272, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1754:4:5", + "referencedDeclaration": 2238, + "src": "1794:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3025,7 +3037,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1742:17:5", + "src": "1782:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3034,95 +3046,87 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 2182, + "id": 2274, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1762:7:5", + "referencedDeclaration": 2255, + "src": "1802:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1742:27:5", + "src": "1782:27:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2184, + "id": 2276, "nodeType": "ExpressionStatement", - "src": "1742:27:5" + "src": "1782:27:5" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2186, + "id": 2278, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2159, - "src": "1807:2:5", + "referencedDeclaration": 2250, + "src": "1847:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2187, + "id": 2279, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1811:4:5", + "referencedDeclaration": 2238, + "src": "1851:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2188, + "id": 2280, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1817:7:5", + "referencedDeclaration": 2255, + "src": "1857:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2189, + "id": 2281, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1826:3:5", + "referencedDeclaration": 4294967281, + "src": "1866:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2190, + "id": 2282, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1826:10:5", + "src": "1866:10:5", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3148,18 +3152,18 @@ "typeString": "address payable" } ], - "id": 2185, + "id": 2277, "name": "NewContestTeamContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "1784:22:5", + "referencedDeclaration": 2200, + "src": "1824:22:5", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256,bytes32,address,address)" } }, - "id": 2191, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": false, @@ -3167,122 +3171,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1784:53:5", + "src": "1824:53:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2192, + "id": 2284, "nodeType": "EmitStatement", - "src": "1779:58:5" + "src": "1819:58:5" }, { "expression": { - "argumentTypes": null, - "id": 2193, + "id": 2285, "name": "newTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "1854:7:5", + "referencedDeclaration": 2255, + "src": "1894:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2157, - "id": 2194, + "functionReturnParameters": 2248, + "id": 2286, "nodeType": "Return", - "src": "1847:14:5" + "src": "1887:14:5" } ] }, - "documentation": "@notice Creates and deploys a new ContestTeam contract.\n@param name Unique team's name, used internally for identification using a human-friendly text.\n@return The new contract's address.\n@dev The param {name} is not linked or related to the name used by a team when registering for a hackathon.", - "id": 2196, + "documentation": { + "id": 2236, + "nodeType": "StructuredDocumentation", + "src": "1100:323:5", + "text": "@notice Creates and deploys a new ContestTeam contract.\n@param name Unique team's name, used internally for identification using a human-friendly text.\n@return The new contract's address.\n@dev The param {name} is not linked or related to the name used by a team when registering for a hackathon." + }, + "functionSelector": "270603eb", + "id": 2288, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2150, + "id": 2241, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1458:4:5", + "referencedDeclaration": 2238, + "src": "1498:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2151, + "id": 2242, "modifierName": { - "argumentTypes": null, - "id": 2149, + "id": 2240, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "1445:12:5", + "referencedDeclaration": 2216, + "src": "1485:12:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1445:18:5" + "src": "1485:18:5" }, { "arguments": [ { - "argumentTypes": null, - "id": 2153, + "id": 2244, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "1479:4:5", + "referencedDeclaration": 2238, + "src": "1519:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2154, + "id": 2245, "modifierName": { - "argumentTypes": null, - "id": 2152, + "id": 2243, "name": "uniqueTeamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "1464:14:5", + "referencedDeclaration": 2235, + "src": "1504:14:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1464:20:5" + "src": "1504:20:5" } ], "name": "createTeamContract", "nodeType": "FunctionDefinition", "parameters": { - "id": 2148, + "id": 2239, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2147, + "id": 2238, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "1416:12:5", + "scope": 2288, + "src": "1456:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3290,32 +3297,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2146, + "id": 2237, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1416:7:5", + "src": "1456:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1415:14:5" + "src": "1455:14:5" }, "returnParameters": { - "id": 2157, + "id": 2248, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2156, + "id": 2247, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "1494:7:5", + "scope": 2288, + "src": "1534:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3323,79 +3330,84 @@ "typeString": "address" }, "typeName": { - "id": 2155, + "id": 2246, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1494:7:5", + "src": "1534:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1493:9:5" + "src": "1533:9:5" }, - "scope": 2240, - "src": "1388:480:5", + "scope": 2335, + "src": "1428:480:5", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2204, + "id": 2297, "nodeType": "Block", - "src": "2092:37:5", + "src": "2132:37:5", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2202, + "id": 2295, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2109:13:5", + "referencedDeclaration": 2185, + "src": "2149:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 2201, - "id": 2203, + "functionReturnParameters": 2294, + "id": 2296, "nodeType": "Return", - "src": "2102:20:5" + "src": "2142:20:5" } ] }, - "documentation": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses ", - "id": 2205, + "documentation": { + "id": 2289, + "nodeType": "StructuredDocumentation", + "src": "1914:138:5", + "text": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses " + }, + "functionSelector": "13bfb2ae", + "id": 2298, "implemented": true, "kind": "function", "modifiers": [], "name": "getDeployedTeamContracts", "nodeType": "FunctionDefinition", "parameters": { - "id": 2197, + "id": 2290, "nodeType": "ParameterList", "parameters": [], - "src": "2050:2:5" + "src": "2090:2:5" }, "returnParameters": { - "id": 2201, + "id": 2294, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2200, + "id": 2293, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2205, - "src": "2074:16:5", + "scope": 2298, + "src": "2114:16:5", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3404,66 +3416,61 @@ }, "typeName": { "baseType": { - "id": 2198, + "id": 2291, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2074:7:5", + "src": "2114:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2199, - "length": null, + "id": 2292, "nodeType": "ArrayTypeName", - "src": "2074:9:5", + "src": "2114:9:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2073:18:5" + "src": "2113:18:5" }, - "scope": 2240, - "src": "2017:112:5", + "scope": 2335, + "src": "2057:112:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2223, + "id": 2317, "nodeType": "Block", - "src": "2342:85:5", + "src": "2382:85:5", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2216, + "id": 2310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2213, + "id": 2307, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "2360:2:5", + "referencedDeclaration": 2301, + "src": "2400:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3472,35 +3479,32 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2214, + "id": 2308, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2365:13:5", + "referencedDeclaration": 2185, + "src": "2405:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2215, + "id": 2309, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2365:20:5", + "src": "2405:20:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2360:25:5", + "src": "2400:25:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3514,18 +3518,18 @@ "typeString": "bool" } ], - "id": 2212, + "id": 2306, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4233, - "src": "2352:7:5", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2392:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2217, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, @@ -3533,41 +3537,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2352:34:5", + "src": "2392:34:5", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2218, + "id": 2312, "nodeType": "ExpressionStatement", - "src": "2352:34:5" + "src": "2392:34:5" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2219, + "id": 2313, "name": "deployedTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "2403:13:5", + "referencedDeclaration": 2185, + "src": "2443:13:5", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2221, + "id": 2315, "indexExpression": { - "argumentTypes": null, - "id": 2220, + "id": 2314, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2207, - "src": "2417:2:5", + "referencedDeclaration": 2301, + "src": "2457:2:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3578,37 +3580,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2403:17:5", + "src": "2443:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2211, - "id": 2222, + "functionReturnParameters": 2305, + "id": 2316, "nodeType": "Return", - "src": "2396:24:5" + "src": "2436:24:5" } ] }, - "documentation": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract", - "id": 2224, + "documentation": { + "id": 2299, + "nodeType": "StructuredDocumentation", + "src": "2175:131:5", + "text": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract" + }, + "functionSelector": "71629c40", + "id": 2318, "implemented": true, "kind": "function", "modifiers": [], "name": "getTeamContractById", "nodeType": "FunctionDefinition", "parameters": { - "id": 2208, + "id": 2302, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2207, + "id": 2301, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "2300:10:5", + "scope": 2318, + "src": "2340:10:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3616,32 +3625,32 @@ "typeString": "uint256" }, "typeName": { - "id": 2206, + "id": 2300, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2300:7:5", + "src": "2340:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2299:12:5" + "src": "2339:12:5" }, "returnParameters": { - "id": 2211, + "id": 2305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2210, + "id": 2304, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "2333:7:5", + "scope": 2318, + "src": "2373:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3649,59 +3658,55 @@ "typeString": "address" }, "typeName": { - "id": 2209, + "id": 2303, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2333:7:5", + "src": "2373:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2332:9:5" + "src": "2372:9:5" }, - "scope": 2240, - "src": "2271:156:5", + "scope": 2335, + "src": "2311:156:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2238, + "id": 2333, "nodeType": "Block", - "src": "2665:41:5", + "src": "2705:41:5", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2234, + "id": 2329, "name": "teamsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "2682:11:5", + "referencedDeclaration": 2189, + "src": "2722:11:5", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2236, + "id": 2331, "indexExpression": { - "argumentTypes": null, - "id": 2235, + "id": 2330, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2694:4:5", + "referencedDeclaration": 2321, + "src": "2734:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3712,71 +3717,76 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2682:17:5", + "src": "2722:17:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2233, - "id": 2237, + "functionReturnParameters": 2328, + "id": 2332, "nodeType": "Return", - "src": "2675:24:5" + "src": "2715:24:5" } ] }, - "documentation": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract", - "id": 2239, + "documentation": { + "id": 2319, + "nodeType": "StructuredDocumentation", + "src": "2473:133:5", + "text": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract" + }, + "functionSelector": "3f3abe74", + "id": 2334, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2229, + "id": 2324, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2641:4:5", + "referencedDeclaration": 2321, + "src": "2681:4:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2230, + "id": 2325, "modifierName": { - "argumentTypes": null, - "id": 2228, + "id": 2323, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "2628:12:5", + "referencedDeclaration": 2216, + "src": "2668:12:5", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "2628:18:5" + "src": "2668:18:5" } ], "name": "getTeamContractByName", "nodeType": "FunctionDefinition", "parameters": { - "id": 2227, + "id": 2322, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2226, + "id": 2321, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "2602:12:5", + "scope": 2334, + "src": "2642:12:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3784,32 +3794,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2225, + "id": 2320, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2602:7:5", + "src": "2642:7:5", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "2601:14:5" + "src": "2641:14:5" }, "returnParameters": { - "id": 2233, + "id": 2328, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2232, + "id": 2327, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2239, - "src": "2656:7:5", + "scope": 2334, + "src": "2696:7:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3817,117 +3827,79 @@ "typeString": "address" }, "typeName": { - "id": 2231, + "id": 2326, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2656:7:5", + "src": "2696:7:5", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2655:9:5" + "src": "2695:9:5" }, - "scope": 2240, - "src": "2571:135:5", + "scope": 2335, + "src": "2611:135:5", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2241, - "src": "360:2348:5" + "scope": 2336, + "src": "400:2348:5" } ], - "src": "0:2709:5" + "src": "40:2709:5" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, - "networks": { - "3": { - "events": {}, - "links": {}, - "address": "0x8E7A8de5b0c883dCDe4AA260A91d7717BFfec5c4", - "transactionHash": "0x90c89ceee0fcb64b745c75085a34ae7f7153cec0f029250737b4e023d2281f2b" - }, - "42": { - "events": {}, - "links": {}, - "address": "0x9B92cF4D39A9c9879aE57Ec4604dc80d895C8777", - "transactionHash": "0x5cc8dee4b1bd23c9033957830795d47112b106e2f9ec7656ca928e344fbed1a1" - }, - "5777": { - "events": { - "0x78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "creator", - "type": "address" - } - ], - "name": "NewContestTeamContract", - "type": "event", - "signature": "0x78338f4fdbc2ea6c9f377be8b6a3c14a22c354f517a423c2a2971896c3e995fc" - } - }, - "links": {}, - "address": "0xa599c8A9A8E9deCB2558F9B9a52240066B218FB4", - "transactionHash": "0x18cbad3ac25d984b454d27b510f8a1a8878f5c471960d59e27239681fde799ca" - } - }, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:37:34.459Z", - "networkType": "ethereum", + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.067Z", "devdoc": { "details": "TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "events": { + "NewContestTeamContract(uint256,bytes32,address,address)": { + "details": "emitted when a new ContestTeam contract is deployed." + } + }, + "kind": "dev", "methods": { "createTeamContract(bytes32)": { "details": "The param {name} is not linked or related to the name used by a team when registering for a hackathon.", "params": { "name": "Unique team's name, used internally for identification using a human-friendly text." }, - "return": "The new contract's address." + "returns": { + "_0": "The new contract's address." + } }, "getDeployedTeamContracts()": { - "return": "List of deployed contract's addresses " + "returns": { + "_0": "List of deployed contract's addresses " + } }, "getTeamContractById(uint256)": { - "return": "An address representing a deployed contract" + "returns": { + "_0": "An address representing a deployed contract" + } }, "getTeamContractByName(bytes32)": { - "return": "An address representing a deployed contract" + "returns": { + "_0": "An address representing a deployed contract" + } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "createTeamContract(bytes32)": { "notice": "Creates and deploys a new ContestTeam contract." @@ -3942,6 +3914,7 @@ "notice": "Get a contract address with the internal name." } }, - "notice": "A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses." + "notice": "A factory to deploy new ContestTeam contracts, and provide functionality to retrieve the deployed contracts' addresses.", + "version": 1 } } diff --git a/build/contracts/ContestTeamMock.json b/build/contracts/ContestTeamMock.json index 1e217e7..65a7afa 100644 --- a/build/contracts/ContestTeamMock.json +++ b/build/contracts/ContestTeamMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -147,16 +146,13 @@ "type": "event" }, { - "constant": false, "inputs": [], "name": "_unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -166,12 +162,10 @@ ], "name": "addAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "balanceOf", "outputs": [ @@ -181,21 +175,17 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveMembers", "outputs": [ @@ -205,12 +195,10 @@ "type": "address[]" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getActiveMembersCount", "outputs": [ @@ -220,12 +208,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -241,12 +227,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "isPaused", "outputs": [ @@ -256,48 +240,38 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "pause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceAttendee", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "splitPrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -307,12 +281,10 @@ ], "name": "withdraw", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getReservedBalance", "outputs": [ @@ -322,12 +294,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getAvailableBalance", "outputs": [ @@ -337,12 +307,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getBalance", "outputs": [ @@ -352,105 +320,112 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"membersCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"memberPrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeSplit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getActiveMembersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAvailableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getReservedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"splitPrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"balanceOf()\":{\"return\":\"The balance of a team member\"},\"getActiveMembers()\":{\"return\":\"An array of addresses representing the accounts of active members\"},\"getActiveMembersCount()\":{\"return\":\"{uint256} Count of active members\"},\"isPaused()\":{\"return\":\"{true} if the contract is paused; otherwise, {false}.\"},\"pause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"splitPrize()\":{\"details\":\"Implements the \\\"withdraw pattern\\\" by allocating balances to team members, so they can request a withdraw once the split is done.\"},\"unpause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"withdraw(uint256)\":{\"details\":\"Implements the \\\"withdraw pattern\\\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. \"}}},\"userdoc\":{\"methods\":{\"balanceOf()\":{\"notice\":\"Get the balance of a team member\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getActiveMembers()\":{\"notice\":\"Gets the active members in the team.\"},\"getActiveMembersCount()\":{\"notice\":\"Gets the number of active team members.\"},\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Trigger the paused state.\"},\"splitPrize()\":{\"notice\":\"Splits the available's contract balance between active team members.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"},\"withdraw(uint256)\":{\"notice\":\"Allows a team member to withdraw its funds from the contract.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol\":\"ContestTeamMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0x174cd9f4df41a4b93e01da6375048474e92497b67fa9c9629d13470ecd14b442\",\"urls\":[\"bzz-raw://4d16463127dc2e71cc33acac4d3b1efd45ccf3d75e9e3d42e9bd7803d2ce3777\",\"dweb:/ipfs/QmVDEw7oZprgzxsPM6cFyPrBa3qE9CBQgCHZ6LPwNjE3fV\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x13c9c60ded6c062f523ae97e0ccce959b4445fb9350261ec676fcffa86f7cff0\",\"urls\":[\"bzz-raw://fe0a5cd6d67d4abbe45a965a57efb9fc3de00352f8e1345fdd6d24be6a372327\",\"dweb:/ipfs/Qma1rpyzs9xHQcqHSeXaDwM9ZCrwDdXZ74M62aoD4mBDEy\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol\":{\"keccak256\":\"0xb84f37ec3d6d2114e5c750b877df4edfa8cc05d969498e71cea837347f05658e\",\"urls\":[\"bzz-raw://9a03ef8d5349394be55297a9482d69cc433c040799db916bb55d40200c1b5e43\",\"dweb:/ipfs/Qmb4ctTgEJcexKMJtuZdxXaPUXRBPRurrhdMjQw8Wxb1nD\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0x6d8a1612736c806680064dbb20da3b25b19fb68b0ea157764abe8c4d6c2c1014\",\"urls\":[\"bzz-raw://07c3ea494972a5d0bc34e75068125e2d82f824b973d7c42edaec5fa361e318e3\",\"dweb:/ipfs/QmaH1BkrDJEDkd3uEyTT42h39cGBrGrMCXw1YdaqaFQUsv\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b503380806200008157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b62000095816001600160e01b03620000a716565b50506001805460ff19169055620003ac565b60015460ff16156200011a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f436f6e7472616374206973207061757365640000000000000000000000000000604482015290519081900360640190fd5b6200013081620001b460201b62000e191760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff191683179055600354620001ae92909162000206811b62000bb317901c565b60035550565b620001cf8160006200028260201b62000f371790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b6000828201838110156200027b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200029782826001600160e01b036200032916565b156200030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200038c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806200153b6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61117f80620003bc6000396000f3fe6080604052600436106100f35760003560e01c8063809dab6a1161008a578063d0e30db011610059578063d0e30db0146102bd578063d9a15549146102c5578063fb1da543146102da578063fc8234cb146102ef576100f3565b8063809dab6a146102695780638456cb591461027e5780638f7c851914610293578063b187bd26146102a8576100f3565b80633f4ba83a116100c65780633f4ba83a146101935780634876aebc146101a85780636cad25901461020d578063722713f714610254576100f3565b806307057382146100f8578063102462541461010f57806312065fe0146101425780632e1a7d4d14610169575b600080fd5b34801561010457600080fd5b5061010d610304565b005b34801561011b57600080fd5b5061010d6004803603602081101561013257600080fd5b50356001600160a01b0316610609565b34801561014e57600080fd5b50610157610659565b60408051918252519081900360200190f35b34801561017557600080fd5b5061010d6004803603602081101561018c57600080fd5b503561065e565b34801561019f57600080fd5b5061010d61076b565b3480156101b457600080fd5b506101bd6107b9565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101f95781810151838201526020016101e1565b505050509050019250505060405180910390f35b34801561021957600080fd5b506102406004803603602081101561023057600080fd5b50356001600160a01b031661088c565b604080519115158252519081900360200190f35b34801561026057600080fd5b506101576108a4565b34801561027557600080fd5b506101576108fe565b34801561028a57600080fd5b5061010d61091b565b34801561029f57600080fd5b50610157610967565b3480156102b457600080fd5b5061024061096d565b61010d610976565b3480156102d157600080fd5b506101576109ee565b3480156102e657600080fd5b5061010d6109f4565b3480156102fb57600080fd5b5061010d6109fd565b61030d3361088c565b6103485760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610395576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6006546000906103ad9030319063ffffffff610a8c16565b905060008111610404576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b600061041b60035483610ae990919063ffffffff16565b905060008111610466576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061047482600354610b53565b90506000805b6002548110156105265760006002828154811061049357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561051d576001600160a01b0381166000908152600560205260409020546104f1908663ffffffff610bb316565b6001600160a01b03821660009081526005602052604090205561051a838663ffffffff610bb316565b92505b5060010161047a565b5060065461053a908563ffffffff610bb316565b60065580821461057b5760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b6006543031146105bc5760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6106123361088c565b61064d5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b61065681610c0d565b50565b303190565b336000908152600560205260409020548111156106b7576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106d7818363ffffffff610a8c16565b3360009081526005602052604090208190556006549091506106ff908363ffffffff610a8c16565b600655604051339083156108fc029084906000818181858888f1935050505015801561072f573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6107743361088c565b6107af5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6107b7610cd7565b565b60025460035460609110156107cd57600080fd5b60606003546040519080825280602002602001820160405280156107fb578160200160208202803883390190505b50905060005b6002548110156108865760006002828154811061081a57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561087d578083838151811061085c57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610801565b50905090565b600061089e818363ffffffff610cdf16565b92915050565b60006108af3361088c565b6108ea5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6006546000906109169030319063ffffffff610a8c16565b905090565b6109243361088c565b61095f5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6107b7610d46565b60035490565b60015460ff1690565b600034116109b55760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60065490565b6107b733610d4e565b60015460ff16610a4d576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610ae3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610b3f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610b4a57fe5b04949350505050565b600082610b625750600061089e565b82820282848281610b6f57fe5b0414610bac5760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b9392505050565b600082820183811015610bac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610c5a576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c6381610e19565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610cd191610bb3565b60035550565b6107b76109fd565b60006001600160a01b038216610d265760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6107b7610e61565b60015460ff1615610d9b576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610ddc5760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610de581610eef565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610cd190600163ffffffff610a8c16565b610e2a60008263ffffffff610f3716565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610eae576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f0060008263ffffffff610fb816565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610f418282610cdf565b15610f93576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610fc28282610cdf565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820cdafdcce0acf236fd8f75a5cccdf5fadd38775ce1a49fc75092222bfe380e8d664736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x6080604052600436106100f35760003560e01c8063809dab6a1161008a578063d0e30db011610059578063d0e30db0146102bd578063d9a15549146102c5578063fb1da543146102da578063fc8234cb146102ef576100f3565b8063809dab6a146102695780638456cb591461027e5780638f7c851914610293578063b187bd26146102a8576100f3565b80633f4ba83a116100c65780633f4ba83a146101935780634876aebc146101a85780636cad25901461020d578063722713f714610254576100f3565b806307057382146100f8578063102462541461010f57806312065fe0146101425780632e1a7d4d14610169575b600080fd5b34801561010457600080fd5b5061010d610304565b005b34801561011b57600080fd5b5061010d6004803603602081101561013257600080fd5b50356001600160a01b0316610609565b34801561014e57600080fd5b50610157610659565b60408051918252519081900360200190f35b34801561017557600080fd5b5061010d6004803603602081101561018c57600080fd5b503561065e565b34801561019f57600080fd5b5061010d61076b565b3480156101b457600080fd5b506101bd6107b9565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101f95781810151838201526020016101e1565b505050509050019250505060405180910390f35b34801561021957600080fd5b506102406004803603602081101561023057600080fd5b50356001600160a01b031661088c565b604080519115158252519081900360200190f35b34801561026057600080fd5b506101576108a4565b34801561027557600080fd5b506101576108fe565b34801561028a57600080fd5b5061010d61091b565b34801561029f57600080fd5b50610157610967565b3480156102b457600080fd5b5061024061096d565b61010d610976565b3480156102d157600080fd5b506101576109ee565b3480156102e657600080fd5b5061010d6109f4565b3480156102fb57600080fd5b5061010d6109fd565b61030d3361088c565b6103485760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b60015460ff1615610395576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6006546000906103ad9030319063ffffffff610a8c16565b905060008111610404576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b600061041b60035483610ae990919063ffffffff16565b905060008111610466576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061047482600354610b53565b90506000805b6002548110156105265760006002828154811061049357fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561051d576001600160a01b0381166000908152600560205260409020546104f1908663ffffffff610bb316565b6001600160a01b03821660009081526005602052604090205561051a838663ffffffff610bb316565b92505b5060010161047a565b5060065461053a908563ffffffff610bb316565b60065580821461057b5760405162461bcd60e51b81526004018080602001828103825260248152602001806110416024913960400191505060405180910390fd5b6006543031146105bc5760405162461bcd60e51b815260040180806020018281038252602a815260200180611065602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6106123361088c565b61064d5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b61065681610c0d565b50565b303190565b336000908152600560205260409020548111156106b7576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106d7818363ffffffff610a8c16565b3360009081526005602052604090208190556006549091506106ff908363ffffffff610a8c16565b600655604051339083156108fc029084906000818181858888f1935050505015801561072f573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b6107743361088c565b6107af5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6107b7610cd7565b565b60025460035460609110156107cd57600080fd5b60606003546040519080825280602002602001820160405280156107fb578160200160208202803883390190505b50905060005b6002548110156108865760006002828154811061081a57fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff1615156001141561087d578083838151811061085c57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b50600101610801565b50905090565b600061089e818363ffffffff610cdf16565b92915050565b60006108af3361088c565b6108ea5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b503360009081526005602052604090205490565b6006546000906109169030319063ffffffff610a8c16565b905090565b6109243361088c565b61095f5760405162461bcd60e51b81526004018080602001828103825260318152602001806110f36031913960400191505060405180910390fd5b6107b7610d46565b60035490565b60015460ff1690565b600034116109b55760405162461bcd60e51b81526004018080602001828103825260218152602001806110206021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60065490565b6107b733610d4e565b60015460ff16610a4d576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b600082821115610ae3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000808211610b3f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610b4a57fe5b04949350505050565b600082610b625750600061089e565b82820282848281610b6f57fe5b0414610bac5760405162461bcd60e51b81526004018080602001828103825260218152602001806110b06021913960400191505060405180910390fd5b9392505050565b600082820183811015610bac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60015460ff1615610c5a576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610c6381610e19565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610cd191610bb3565b60035550565b6107b76109fd565b60006001600160a01b038216610d265760405162461bcd60e51b81526004018080602001828103825260228152602001806110d16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6107b7610e61565b60015460ff1615610d9b576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610ddc5760405162461bcd60e51b81526004018080602001828103825260278152602001806111246027913960400191505060405180910390fd5b610de581610eef565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610cd190600163ffffffff610a8c16565b610e2a60008263ffffffff610f3716565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60015460ff1615610eae576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b610f0060008263ffffffff610fb816565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b610f418282610cdf565b15610f93576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b610fc28282610cdf565b610ffd5760405162461bcd60e51b815260040180806020018281038252602181526020018061108f6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a265627a7a72315820cdafdcce0acf236fd8f75a5cccdf5fadd38775ce1a49fc75092222bfe380e8d664736f6c634300050c0032", - "sourceMap": "121:502:11:-;;;200:47;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;233:10:11;;1882:29:19;1874:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1946:29;1959:15;-1:-1:-1;;;;;1946:12:19;:29;:::i;:::-;-1:-1:-1;;1098:7:7;:15;;-1:-1:-1;;1098:15:7;;;121:502:11;;6583:248:2;1487:7:7;;;;1486:8;1478:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:27:2;6674:7;6655:18;;;;;:27;;:::i;:::-;6692:11;27:10:-1;;39:1;23:18;;;45:23;;;6692:25:2;;;;-1:-1:-1;;;;;;6692:25:2;-1:-1:-1;;;;;6692:25:2;;;;;;;;-1:-1:-1;6727:26:2;;;:17;6692:25;6727:26;;;;;;;:33;;-1:-1:-1;;6727:33:2;;;;;6795:22;;:29;;:22;;:26;;;;;:29;;:::i;:::-;6770:22;:54;-1:-1:-1;6583:248:2:o;2434:125:19:-;2492:23;2507:7;2492:10;:14;;;;;;:23;;;;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;121:502:11:-;;;;;;;", - "deployedSourceMap": "121:502:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2304:1752:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2304:1752:2;;;:::i;:::-;;2247:96:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2247:96:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2247:96:19;-1:-1:-1;;;;;2247:96:19;;:::i;524:97:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;524:97:11;;;:::i;:::-;;;;;;;;;;;;;;;;4376:511:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4376:511:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4376:511:2;;:::i;6390:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6390:71:2;;;:::i;5028:598::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5028:598:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5028:598:2;;;;;;;;;;;;;;;;;2130:111:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2130:111:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2130:111:19;-1:-1:-1;;;;;2130:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;5949:108:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5949:108:2;;;:::i;391:127:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;391:127:11;;;:::i;6191:67:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6191:67:2;;;:::i;5738:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5738:111:2;;;:::i;1271:78:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:78:7;;;:::i;348:162:18:-;;;:::i;286:99:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;286:99:11;;;:::i;2349:79:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2349:79:19;;;:::i;2448:105:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2448:105:7;;;:::i;2304:1752:2:-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;2522:15:2;;2469:24;;2496:42;;2504:4;2496:21;;:42;:25;:42;:::i;:::-;2469:69;;2575:1;2556:16;:20;2548:60;;;;;-1:-1:-1;;;2548:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2619:13;2635:44;2656:22;;2635:16;:20;;:44;;;;:::i;:::-;2619:60;;2705:1;2697:5;:9;2689:39;;;;;-1:-1:-1;;;2689:39:2;;;;;;;;;;;;-1:-1:-1;;;2689:39:2;;;;;;;;;;;;;;;2739:28;2770:43;2783:5;2790:22;;2770:12;:43::i;:::-;2739:74;-1:-1:-1;2823:24:2;;2858:364;2890:11;:18;2882:26;;2858:364;;;2933:14;2950:11;2962:5;2950:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2950:18:2;3034:25;;;:17;:25;;;;;;;;2950:18;;-1:-1:-1;3034:25:2;;:33;;2950:18;3034:33;3030:182;;;-1:-1:-1;;;;;3106:16:2;;;;;;:8;:16;;;;;;:27;;3127:5;3106:27;:20;:27;:::i;:::-;-1:-1:-1;;;;;3087:16:2;;;;;;:8;:16;;;;;:46;3170:27;:16;3191:5;3170:27;:20;:27;:::i;:::-;3151:46;;3030:182;-1:-1:-1;2910:7:2;;2858:364;;;-1:-1:-1;3325:15:2;;:37;;3345:16;3325:37;:19;:37;:::i;:::-;3307:15;:55;3772:40;;;3764:89;;;;-1:-1:-1;;;3764:89:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3896:15;;3879:4;3871:21;:40;3863:95;;;;-1:-1:-1;;;3863:95:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4014:22;;3973:76;;;;;;;;;;;;;;;;;;;;4045:3;;3984:10;;3973:76;;;;;;;;;1527:1:7;;;;2304:1752:2:o;2247:96:19:-;2030:22;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2315:21;2328:7;2315:12;:21::i;:::-;2247:96;:::o;524:97:11:-;601:4;593:21;524:97;:::o;4376:511:2:-;4446:10;4437:20;;;;:8;:20;;;;;;:30;-1:-1:-1;4437:30:2;4429:61;;;;;-1:-1:-1;;;4429:61:2;;;;;;;;;;;;-1:-1:-1;;;4429:61:2;;;;;;;;;;;;;;;4534:10;4500:22;4525:20;;;:8;:20;;;;;;4572:26;4525:20;4591:6;4572:26;:18;:26;:::i;:::-;4617:10;4608:20;;;;:8;:20;;;;;:37;;;4768:15;;4555:43;;-1:-1:-1;4768:27:2;;4788:6;4768:27;:19;:27;:::i;:::-;4750:15;:45;4805:27;;:10;;:27;;;;;4825:6;;4805:27;;;;4825:6;4805:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4847:33:2;;;;;;;;4876:3;;4856:10;;4847:33;;;;;;;;;4376:511;;:::o;6390:71::-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6439:15:2;:13;:15::i;:::-;6390:71::o;5028:598::-;5139:11;:18;5113:22;;5077:16;;-1:-1:-1;5113:44:2;5105:53;;;;;;5168:30;5215:22;;5201:37;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5201:37:2;-1:-1:-1;5168:70:2;-1:-1:-1;5360:13:2;5355:235;5387:11;:18;5379:26;;5355:235;;;5430:14;5447:11;5459:5;5447:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5447:18:2;5483:25;;;:17;:25;;;;;;;;5447:18;;-1:-1:-1;5483:25:2;;:33;;5447:18;5483:33;5479:101;;;5559:6;5536:13;5550:5;5536:20;;;;;;;;;;;;;:29;-1:-1:-1;;;;;5536:29:2;;;-1:-1:-1;;;;;5536:29:2;;;;;5479:101;-1:-1:-1;5407:7:2;;5355:235;;;-1:-1:-1;5606:13:2;-1:-1:-1;5028:598:2;:::o;2130:111:19:-;2188:4;2211:23;2188:4;2226:7;2211:23;:14;:23;:::i;:::-;2204:30;2130:111;-1:-1:-1;;2130:111:19:o;5949:108:2:-;6004:7;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6039:10:2;6030:20;;;;:8;:20;;;;;;5949:108;:::o;391:127:11:-;495:15;;443:7;;469:42;;477:4;469:21;;:42;:25;:42;:::i;:::-;462:49;;391:127;:::o;6191:67:2:-;2030:22:19;2041:10;2030;:22::i;:::-;2022:84;;;;-1:-1:-1;;;2022:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6238:13:2;:11;:13::i;5738:111::-;5820:22;;5738:111;:::o;1271:78:7:-;1335:7;;;;1271:78;:::o;348:162:18:-;414:1;402:9;:13;394:59;;;;-1:-1:-1;;;394:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:35;;;488:9;468:35;;;;499:3;;476:10;;468:35;;;;;;;;;348:162::o;286:99:11:-;363:15;;286:99;:::o;2349:79:19:-;2394:27;2410:10;2394:15;:27::i;2448:105:7:-;1665:7;;;;1657:42;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;;;;2496:7;:15;;-1:-1:-1;;2496:15:7;;;2526:20;;;2535:10;2526:20;;;;;;;;;;;;;2448:105::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;2749:44:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:25:o;1693:458::-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:25;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;2069:56:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:25:o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;6583:248:2;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;6655:27:2;6674:7;6655:18;:27::i;:::-;6692:11;27:10:-1;;39:1;23:18;;;45:23;;;6692:25:2;;;;-1:-1:-1;;;;;;6692:25:2;-1:-1:-1;;;;;6692:25:2;;;;;;;;-1:-1:-1;6727:26:2;;;:17;6692:25;6727:26;;;;:33;;-1:-1:-1;;6727:33:2;;;;;6795:22;;:29;;:26;:29::i;:::-;6770:22;:54;-1:-1:-1;6583:248:2:o;2143:53:7:-;2179:10;:8;:10::i;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1906:49:7:-;1940:8;:6;:8::i;6953:374:2:-;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;7127:1:2;7102:22;;:26;7094:78;;;;-1:-1:-1;;;7094:78:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7182:30;7204:7;7182:21;:30::i;:::-;-1:-1:-1;;;;;7222:26:2;;7251:5;7222:26;;;:17;:26;;;;;:34;;-1:-1:-1;;7222:34:2;;;7291:22;;:29;;7222:34;7291:29;:26;:29;:::i;2434:125:19:-;2492:23;:10;2507:7;2492:23;:14;:23;:::i;:::-;2530:22;;-1:-1:-1;;;;;2530:22:19;;;;;;;;2434:125;:::o;2271:105:7:-;1487:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;2332:4;2322:14;;-1:-1:-1;;2322:14:7;;;;;2351:18;;;2358:10;2351:18;;;;;;;;;;;;;2271:105::o;2565:133:19:-;2626:26;:10;2644:7;2626:26;:17;:26;:::i;:::-;2667:24;;-1:-1:-1;;;;;2667:24:19;;;;;;;;2565:133;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../core/ContestTeam.sol\";\n\ncontract ContestTeamMock is ContestTeam {\n using SafeMath for uint256;\n\n constructor() public ContestTeam(msg.sender) {}\n\n // Helper testing functions.\n function getReservedBalance() public view returns (uint256) {\n return reservedBalance;\n }\n\n function getAvailableBalance() public view returns (uint256) {\n return address(this).balance.sub(reservedBalance);\n }\n\n function getBalance() public view returns (uint256) {\n return address(this).balance;\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AttendeeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalPrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"membersCount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"memberPrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeSplit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveMembers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getActiveMembersCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAvailableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReservedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAttendee\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceAttendee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"splitPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"balanceOf()\":{\"returns\":{\"_0\":\"The balance of a team member\"}},\"getActiveMembers()\":{\"returns\":{\"_0\":\"An array of addresses representing the accounts of active members\"}},\"getActiveMembersCount()\":{\"returns\":{\"_0\":\"{uint256} Count of active members\"}},\"isPaused()\":{\"returns\":{\"_0\":\"{true} if the contract is paused; otherwise, {false}.\"}},\"pause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"splitPrize()\":{\"details\":\"Implements the \\\"withdraw pattern\\\" by allocating balances to team members, so they can request a withdraw once the split is done.\"},\"unpause()\":{\"details\":\"Implements the onlyAttendee modifier for access control.\"},\"withdraw(uint256)\":{\"details\":\"Implements the \\\"withdraw pattern\\\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. \"}},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,uint256,uint256)\":{\"notice\":\"Event emitted when the contract receives a deposit.\"},\"PrizeSplit(address,uint256,uint256,uint256,uint256)\":{\"notice\":\"emitted when the contract's balance (prize) is split between active members.\"},\"Withdraw(address,uint256,uint256)\":{\"notice\":\"emitted when a member withdraws from the contract.\"}},\"kind\":\"user\",\"methods\":{\"balanceOf()\":{\"notice\":\"Get the balance of a team member\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getActiveMembers()\":{\"notice\":\"Gets the active members in the team.\"},\"getActiveMembersCount()\":{\"notice\":\"Gets the number of active team members.\"},\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Trigger the paused state.\"},\"splitPrize()\":{\"notice\":\"Splits the available's contract balance between active team members.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"},\"withdraw(uint256)\":{\"notice\":\"Allows a team member to withdraw its funds from the contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol\":\"ContestTeamMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol\":{\"keccak256\":\"0xd1b449fc904fa0f595711cba0a16746a6c4932fce51d51df0c0409bef110a599\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a203265f84124273591308298b9e5c097ba3116d8e3755accd4fbf50d50a1b78\",\"dweb:/ipfs/QmWax7vpTquEcTzfGAorKH8gs2wWPHdpHMe6PdDMKWTLN4\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0xe658c5869875103432729fd020763ede0557d94848fe421aa140050cfad0215c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f8cc47d690ed64cf8780b26b9d25cd945004831b1ade3be565e47b61d070bee\",\"dweb:/ipfs/QmZACTXi1S92e1tF8tXWi5oWKfptjwMTfDyRcJXDPRLUcZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol\":{\"keccak256\":\"0x8f4334131000560303040241d436e60634dda2b446dbb307ea0bb3decb585817\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1b002c96cd44ad5b1a0cf534bc74a86c78570e62b46f1179ec5cde1d9b0f975c\",\"dweb:/ipfs/QmNUnyeHt1SNsii7HeKxfxrQMLz4qZs9KE3JZDxYNnELzJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/AttendeeRole.sol\":{\"keccak256\":\"0xa51bbee9262940c417d864967fc5b3c9e90fdb20848ec3afc04c30e1d2bf3e6c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://926e4555fa2fcf567df76509680bdf5600edc33335f263f11c46a297951d67dc\",\"dweb:/ipfs/QmPkhvmATnQ9KkiGxdohwdWET3RZVfvhDQek3M9ZzZxGtU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5033808062000067576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000728162000084565b50506001805460ff191690556200030d565b60015460ff1615620000d2576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b620000e8816200016c60201b62000a7b1760201c565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460209081526040909120805460ff19168317905560035462000166929091620001be811b62000abd17901c565b60035550565b620001878160006200022060201b62000b1e1790919060201c565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b60008282018381101562000219576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200022c8282620002a4565b156200027f576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002ed5760405162461bcd60e51b8152600401808060200182810382526022815260200180620015336022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611216806200031d6000396000f3fe6080604052600436106100f35760003560e01c8063809dab6a1161008a578063d0e30db011610059578063d0e30db0146102bd578063d9a15549146102c5578063fb1da543146102da578063fc8234cb146102ef576100f3565b8063809dab6a146102695780638456cb591461027e5780638f7c851914610293578063b187bd26146102a8576100f3565b80633f4ba83a116100c65780633f4ba83a146101935780634876aebc146101a85780636cad25901461020d578063722713f714610254576100f3565b806307057382146100f8578063102462541461010f57806312065fe0146101425780632e1a7d4d14610169575b600080fd5b34801561010457600080fd5b5061010d610304565b005b34801561011b57600080fd5b5061010d6004803603602081101561013257600080fd5b50356001600160a01b03166105f5565b34801561014e57600080fd5b50610157610645565b60408051918252519081900360200190f35b34801561017557600080fd5b5061010d6004803603602081101561018c57600080fd5b5035610649565b34801561019f57600080fd5b5061010d61074a565b3480156101b457600080fd5b506101bd610798565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101f95781810151838201526020016101e1565b505050509050019250505060405180910390f35b34801561021957600080fd5b506102406004803603602081101561023057600080fd5b50356001600160a01b0316610882565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610157610894565b34801561027557600080fd5b506101576108ee565b34801561028a57600080fd5b5061010d61090a565b34801561029f57600080fd5b50610157610956565b3480156102b457600080fd5b5061024061095c565b61010d610965565b3480156102d157600080fd5b506101576109dd565b3480156102e657600080fd5b5061010d6109e3565b3480156102fb57600080fd5b5061010d6109ec565b61030d33610882565b6103485760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b60015460ff1615610395576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60006103ac60065447610b9f90919063ffffffff16565b905060008111610403576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b600061041a60035483610be190919063ffffffff16565b905060008111610465576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061047382600354610c23565b90506000805b6002548110156105195760006002828154811061049257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff16151560011415610510576001600160a01b0381166000908152600560205260409020546104ea9086610abd565b6001600160a01b03821660009081526005602052604090205561050d8386610abd565b92505b50600101610479565b506006546105279085610abd565b6006558082146105685760405162461bcd60e51b81526004018080602001828103825260248152602001806110d76024913960400191505060405180910390fd5b60065447146105a85760405162461bcd60e51b815260040180806020018281038252602a8152602001806110fb602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105fe33610882565b6106395760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b61064281610c7c565b50565b4790565b336000908152600560205260409020548111156106a2576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106bc8183610b9f565b3360009081526005602052604090208190556006549091506106de9083610b9f565b600655604051339083156108fc029084906000818181858888f1935050505015801561070e573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b61075333610882565b61078e5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b610796610d46565b565b60025460035460609110156107ac57600080fd5b600060035467ffffffffffffffff811180156107c757600080fd5b506040519080825280602002602001820160405280156107f1578160200160208202803683370190505b50905060005b60025481101561087c5760006002828154811061081057fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff16151560011415610873578083838151811061085257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b506001016107f7565b50905090565b600061088e8183610d4e565b92915050565b600061089f33610882565b6108da5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b503360009081526005602052604090205490565b600061090560065447610b9f90919063ffffffff16565b905090565b61091333610882565b61094e5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b610796610db5565b60035490565b60015460ff1690565b600034116109a45760405162461bcd60e51b81526004018080602001828103825260218152602001806110b66021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60065490565b61079633610dbd565b60015460ff16610a3c576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b610a86600082610b1e565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610b17576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610b288282610d4e565b15610b7a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610b1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e82565b6000610b1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f19565b600082610c325750600061088e565b82820282848281610c3f57fe5b0414610b175760405162461bcd60e51b81526004018080602001828103825260218152602001806111466021913960400191505060405180910390fd5b60015460ff1615610cc9576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610cd281610a7b565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610d4091610abd565b60035550565b6107966109ec565b60006001600160a01b038216610d955760405162461bcd60e51b81526004018080602001828103825260228152602001806111676022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610796610f7e565b60015460ff1615610e0a576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610e4b5760405162461bcd60e51b81526004018080602001828103825260278152602001806111ba6027913960400191505060405180910390fd5b610e548161100c565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610d40906001610b9f565b60008184841115610f115760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed6578181015183820152602001610ebe565b50505050905090810190601f168015610f035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ed6578181015183820152602001610ebe565b506000838581610f7457fe5b0495945050505050565b60015460ff1615610fcb576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b61101760008261104e565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b6110588282610d4e565b6110935760405162461bcd60e51b81526004018080602001828103825260218152602001806111256021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a2646970667358221220086b67729f96d4ec0b786aaa9d8dbf6e81127fc9162292cc6780fb4f3c2248cb64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x6080604052600436106100f35760003560e01c8063809dab6a1161008a578063d0e30db011610059578063d0e30db0146102bd578063d9a15549146102c5578063fb1da543146102da578063fc8234cb146102ef576100f3565b8063809dab6a146102695780638456cb591461027e5780638f7c851914610293578063b187bd26146102a8576100f3565b80633f4ba83a116100c65780633f4ba83a146101935780634876aebc146101a85780636cad25901461020d578063722713f714610254576100f3565b806307057382146100f8578063102462541461010f57806312065fe0146101425780632e1a7d4d14610169575b600080fd5b34801561010457600080fd5b5061010d610304565b005b34801561011b57600080fd5b5061010d6004803603602081101561013257600080fd5b50356001600160a01b03166105f5565b34801561014e57600080fd5b50610157610645565b60408051918252519081900360200190f35b34801561017557600080fd5b5061010d6004803603602081101561018c57600080fd5b5035610649565b34801561019f57600080fd5b5061010d61074a565b3480156101b457600080fd5b506101bd610798565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101f95781810151838201526020016101e1565b505050509050019250505060405180910390f35b34801561021957600080fd5b506102406004803603602081101561023057600080fd5b50356001600160a01b0316610882565b604080519115158252519081900360200190f35b34801561026057600080fd5b50610157610894565b34801561027557600080fd5b506101576108ee565b34801561028a57600080fd5b5061010d61090a565b34801561029f57600080fd5b50610157610956565b3480156102b457600080fd5b5061024061095c565b61010d610965565b3480156102d157600080fd5b506101576109dd565b3480156102e657600080fd5b5061010d6109e3565b3480156102fb57600080fd5b5061010d6109ec565b61030d33610882565b6103485760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b60015460ff1615610395576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b60006103ac60065447610b9f90919063ffffffff16565b905060008111610403576040805162461bcd60e51b815260206004820152601b60248201527f436f6e74657374616e745465616d2062616c616e636520697320300000000000604482015290519081900360640190fd5b600061041a60035483610be190919063ffffffff16565b905060008111610465576040805162461bcd60e51b815260206004820152601160248201527004d656d626572207072697a65206973203607c1b604482015290519081900360640190fd5b600061047382600354610c23565b90506000805b6002548110156105195760006002828154811061049257fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff16151560011415610510576001600160a01b0381166000908152600560205260409020546104ea9086610abd565b6001600160a01b03821660009081526005602052604090205561050d8386610abd565b92505b50600101610479565b506006546105279085610abd565b6006558082146105685760405162461bcd60e51b81526004018080602001828103825260248152602001806110d76024913960400191505060405180910390fd5b60065447146105a85760405162461bcd60e51b815260040180806020018281038252602a8152602001806110fb602a913960400191505060405180910390fd5b60035460408051868152602081019290925281810185905251429133917f347ce84d9ed7334a67bdbc36e6519fbbc870a22468c5fa79fcbb5d68f5bc220d9181900360600190a350505050565b6105fe33610882565b6106395760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b61064281610c7c565b50565b4790565b336000908152600560205260409020548111156106a2576040805162461bcd60e51b81526020600482015260126024820152714e6f7420656e6f7567682062616c616e636560701b604482015290519081900360640190fd5b336000908152600560205260409020546106bc8183610b9f565b3360009081526005602052604090208190556006549091506106de9083610b9f565b600655604051339083156108fc029084906000818181858888f1935050505015801561070e573d6000803e3d6000fd5b50604080518381529051429133917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689181900360200190a35050565b61075333610882565b61078e5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b610796610d46565b565b60025460035460609110156107ac57600080fd5b600060035467ffffffffffffffff811180156107c757600080fd5b506040519080825280602002602001820160405280156107f1578160200160208202803683370190505b50905060005b60025481101561087c5760006002828154811061081057fe5b60009182526020808320909101546001600160a01b0316808352600490915260409091205490915060ff16151560011415610873578083838151811061085257fe5b60200260200101906001600160a01b031690816001600160a01b0316815250505b506001016107f7565b50905090565b600061088e8183610d4e565b92915050565b600061089f33610882565b6108da5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b503360009081526005602052604090205490565b600061090560065447610b9f90919063ffffffff16565b905090565b61091333610882565b61094e5760405162461bcd60e51b81526004018080602001828103825260318152602001806111896031913960400191505060405180910390fd5b610796610db5565b60035490565b60015460ff1690565b600034116109a45760405162461bcd60e51b81526004018080602001828103825260218152602001806110b66021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60065490565b61079633610dbd565b60015460ff16610a3c576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6001805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b610a86600082610b1e565b6040516001600160a01b038216907ff965229cbef17c17a2ced10d89ec5f669942d8dd77bd8a5debcaed392434504e90600090a250565b600082820183811015610b17576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b610b288282610d4e565b15610b7a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6000610b1783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e82565b6000610b1783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610f19565b600082610c325750600061088e565b82820282848281610c3f57fe5b0414610b175760405162461bcd60e51b81526004018080602001828103825260218152602001806111466021913960400191505060405180910390fd5b60015460ff1615610cc9576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b610cd281610a7b565b6002805460018082019092557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0384169081179091556000908152600460205260409020805460ff191682179055600354610d4091610abd565b60035550565b6107966109ec565b60006001600160a01b038216610d955760405162461bcd60e51b81526004018080602001828103825260228152602001806111676022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610796610f7e565b60015460ff1615610e0a576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b600160035411610e4b5760405162461bcd60e51b81526004018080602001828103825260278152602001806111ba6027913960400191505060405180910390fd5b610e548161100c565b6001600160a01b0381166000908152600460205260409020805460ff19169055600354610d40906001610b9f565b60008184841115610f115760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ed6578181015183820152602001610ebe565b50505050905090810190601f168015610f035780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610f685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ed6578181015183820152602001610ebe565b506000838581610f7457fe5b0495945050505050565b60015460ff1615610fcb576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6001805460ff1916811790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b61101760008261104e565b6040516001600160a01b038216907fac9358f7f807517a7bfea84ce37617a495e55d78f95d2efadcdfbf94817220e090600090a250565b6110588282610d4e565b6110935760405162461bcd60e51b81526004018080602001828103825260218152602001806111256021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030496e76616c69642073706c6974206265747765656e20616374697665206d656d6265727352657365727665642062616c616e63656420776173206e6f7420757064617465642070726f7065726c79526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373417474656e646565526f6c653a2063616c6c657220646f6573206e6f74206861766520417474656e64656520526f6c652e43616e6e6f742072656d6f7665206c617374206d656d6265722066726f6d20636f6e7472616374a2646970667358221220086b67729f96d4ec0b786aaa9d8dbf6e81127fc9162292cc6780fb4f3c2248cb64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "161:495:11:-:0;;;240:40;;;;;;;;;-1:-1:-1;266:10:11;;741:29:19;733:62;;;;;-1:-1:-1;;;733:62:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:29;818:15;805:12;:29::i;:::-;-1:-1:-1;;1146:7:7;:15;;-1:-1:-1;;1146:15:7;;;161:495:11;;6658:257:2;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;6739:27:2::1;6758:7;6739:18;;;;;:27;;:::i;:::-;6776:11;:25:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;6776:25:2::1;-1:-1:-1::0;;;;;6776:25:2;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6811:26:2;;;:17:::1;6776:25;6811:26:::0;;;;;;;:33;;-1:-1:-1;;6811:33:2::1;::::0;::::1;::::0;;6879:22:::1;::::0;:29:::1;::::0;:22;;:26:::1;::::0;::::1;;;:29:::0;::::1;:::i;:::-;6854:22;:54:::0;-1:-1:-1;6658:257:2:o;1309:133:19:-;1375:23;1390:7;1375:10;:14;;;;;;:23;;;;:::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;161:495:11:-;;;;;;;", + "deployedSourceMap": "161:495:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2337:1764:2;;;;;;;;;;;;;:::i;:::-;;1106:104:19;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1106:104:19;-1:-1:-1;;;;;1106:104:19;;:::i;557:97:11:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4421:523:2;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4421:523:2;;:::i;6456:80::-;;;;;;;;;;;;;:::i;5085:598::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:111:19;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;989:111:19;-1:-1:-1;;;;;989:111:19;;:::i;:::-;;;;;;;;;;;;;;;;;;6006:108:2;;;;;;;;;;;;;:::i;424:127:11:-;;;;;;;;;;;;;:::i;6248:76:2:-;;;;;;;;;;;;;:::i;5795:111::-;;;;;;;;;;;;;:::i;1319:78:7:-;;;;;;;;;;;;;:::i;396:183:18:-;;;:::i;319:99:11:-;;;;;;;;;;;;;:::i;1216:87:19:-;;;;;;;;;;;;;:::i;2520:113:7:-;;;;;;;;;;;;;:::i;2337:1764:2:-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1535:7:7::1;::::0;::::1;;1534:8;1526:39;;;::::0;;-1:-1:-1;;;1526:39:7;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;::::1;;2502:24:2::2;2529:42;2555:15;;2529:21;:25;;:42;;;;:::i;:::-;2502:69;;2608:1;2589:16;:20;2581:60;;;::::0;;-1:-1:-1;;;2581:60:2;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2652:13;2668:44;2689:22;;2668:16;:20;;:44;;;;:::i;:::-;2652:60;;2738:1;2730:5;:9;2722:39;;;::::0;;-1:-1:-1;;;2722:39:2;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2722:39:2;;;;;;;;;;;;;::::2;;2772:28;2803:43;2816:5;2823:22;;2803:12;:43::i;:::-;2772:74:::0;-1:-1:-1;2856:24:2::2;::::0;2891:364:::2;2923:11;:18:::0;2915:26;::::2;2891:364;;;2966:14;2983:11;2995:5;2983:18;;;;;;;;;::::0;;;::::2;::::0;;;;;::::2;::::0;-1:-1:-1;;;;;2983:18:2::2;3067:25:::0;;;:17:::2;:25:::0;;;;;;;;2983:18;;-1:-1:-1;3067:25:2::2;;:33;;2983:18:::0;3067:33:::2;3063:182;;;-1:-1:-1::0;;;;;3139:16:2;::::2;;::::0;;;:8:::2;:16;::::0;;;;;:27:::2;::::0;3160:5;3139:20:::2;:27::i;:::-;-1:-1:-1::0;;;;;3120:16:2;::::2;;::::0;;;:8:::2;:16;::::0;;;;:46;3203:27:::2;:16:::0;3224:5;3203:20:::2;:27::i;:::-;3184:46;;3063:182;-1:-1:-1::0;2943:7:2::2;;2891:364;;;-1:-1:-1::0;3358:15:2::2;::::0;:37:::2;::::0;3378:16;3358:19:::2;:37::i;:::-;3340:15;:55:::0;3805:40;;::::2;3797:89;;;;-1:-1:-1::0;;;3797:89:2::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3929:15;;3904:21;:40;3896:95;;;;-1:-1:-1::0;;;3896:95:2::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4047:22;::::0;4006:88:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;4078:15:::2;::::0;4017:10:::2;::::0;4006:88:::2;::::0;;;;;;;::::2;1575:1:7;;;;2337:1764:2:o:0;1106:104:19:-;889:22;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:21:::1;1195:7;1182:12;:21::i;:::-;1106:104:::0;:::o;557:97:11:-;626:21;557:97;:::o;4421:523:2:-;4491:10;4482:20;;;;:8;:20;;;;;;:30;-1:-1:-1;4482:30:2;4474:61;;;;;-1:-1:-1;;;4474:61:2;;;;;;;;;;;;-1:-1:-1;;;4474:61:2;;;;;;;;;;;;;;;4579:10;4545:22;4570:20;;;:8;:20;;;;;;4617:26;4570:20;4636:6;4617:18;:26::i;:::-;4662:10;4653:20;;;;:8;:20;;;;;:37;;;4813:15;;4600:43;;-1:-1:-1;4813:27:2;;4833:6;4813:19;:27::i;:::-;4795:15;:45;4850:27;;:10;;:27;;;;;4870:6;;4850:27;;;;4870:6;4850:10;:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4892:45:2;;;;;;;;4921:15;;4901:10;;4892:45;;;;;;;;;4421:523;;:::o;6456:80::-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6514:15:2::1;:13;:15::i;:::-;6456:80::o:0;5085:598::-;5196:11;:18;5170:22;;5134:16;;-1:-1:-1;5170:44:2;5162:53;;;;;;5225:30;5272:22;;5258:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5258:37:2;;5225:70;;5417:13;5412:235;5444:11;:18;5436:26;;5412:235;;;5487:14;5504:11;5516:5;5504:18;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5504:18:2;5540:25;;;:17;:25;;;;;;;;5504:18;;-1:-1:-1;5540:25:2;;:33;;5504:18;5540:33;5536:101;;;5616:6;5593:13;5607:5;5593:20;;;;;;;;;;;;;:29;-1:-1:-1;;;;;5593:29:2;;;-1:-1:-1;;;;;5593:29:2;;;;;5536:101;-1:-1:-1;5464:7:2;;5412:235;;;-1:-1:-1;5663:13:2;-1:-1:-1;5085:598:2;:::o;989:111:19:-;1047:4;1070:23;1047:4;1085:7;1070:14;:23::i;:::-;1063:30;989:111;-1:-1:-1;;989:111:19:o;6006:108:2:-;6061:7;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6096:10:2::1;6087:20;::::0;;;:8:::1;:20;::::0;;;;;6006:108;:::o;424:127:11:-;476:7;502:42;528:15;;502:21;:25;;:42;;;;:::i;:::-;495:49;;424:127;:::o;6248:76:2:-;889:22:19;900:10;889;:22::i;:::-;881:84;;;;-1:-1:-1;;;881:84:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:13:2::1;:11;:13::i;5795:111::-:0;5877:22;;5795:111;:::o;1319:78:7:-;1383:7;;;;1319:78;:::o;396:183:18:-;471:1;459:9;:13;451:59;;;;-1:-1:-1;;;451:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:47;;;545:9;525:47;;;;556:15;;533:10;;525:47;;;;;;;;;396:183::o;319:99:11:-;396:15;;319:99;:::o;1216:87:19:-;1269:27;1285:10;1269:15;:27::i;2520:113:7:-;1713:7;;;;1705:42;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;;;;2576:7:::1;:15:::0;;-1:-1:-1;;2576:15:7::1;::::0;;2606:20:::1;::::0;;2615:10:::1;2606:20:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2520:113::o:0;1309:133:19:-;1375:23;:10;1390:7;1375:14;:23::i;:::-;1413:22;;-1:-1:-1;;;;;1413:22:19;;;;;;;;1309:133;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;3109:130::-;3167:7;3193:39;3197:1;3200;3193:39;;;;;;;;;;;;;;;;;:3;:39::i;2188:459::-;2246:7;2487:6;2483:45;;-1:-1:-1;2516:1:24;2509:8;;2483:45;2550:5;;;2554:1;2550;:5;:1;2573:5;;;;;:10;2565:56;;;;-1:-1:-1;;;2565:56:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6658:257:2;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;6739:27:2::1;6758:7;6739:18;:27::i;:::-;6776:11;:25:::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;6776:25:2::1;-1:-1:-1::0;;;;;6776:25:2;::::1;::::0;;::::1;::::0;;;-1:-1:-1;6811:26:2;;;:17:::1;6776:25;6811:26:::0;;;;:33;;-1:-1:-1;;6811:33:2::1;::::0;::::1;::::0;;6879:22:::1;::::0;:29:::1;::::0;:26:::1;:29::i;:::-;6854:22;:54:::0;-1:-1:-1;6658:257:2:o;2199:61:7:-;2243:10;:8;:10::i;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;1954:57:7:-;1996:8;:6;:8::i;7037:383:2:-;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;7220:1:2::1;7195:22;;:26;7187:78;;;;-1:-1:-1::0;;;7187:78:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7275:30;7297:7;7275:21;:30::i;:::-;-1:-1:-1::0;;;;;7315:26:2;::::1;7344:5;7315:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;7315:34:2::1;::::0;;7384:22:::1;::::0;:29:::1;::::0;7315:34;7384:26:::1;:29::i;1754:187:24:-:0;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o;3721:272::-;3807:7;3841:12;3834:5;3826:28;;;;-1:-1:-1;;;3826:28:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3864:9;3880:1;3876;:5;;;;;;;3721:272;-1:-1:-1;;;;;3721:272:24:o;2335:113:7:-;1535:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;2404:4:::1;2394:14:::0;;-1:-1:-1;;2394:14:7::1;::::0;::::1;::::0;;2423:18:::1;::::0;;2430:10:::1;2423:18:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2335:113::o:0;1448:141:19:-;1517:26;:10;1535:7;1517:17;:26::i;:::-;1558:24;;-1:-1:-1;;;;;1558:24:19;;;;;;;;1448:141;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\nimport \"../core/ContestTeam.sol\";\n\ncontract ContestTeamMock is ContestTeam {\n using SafeMath for uint256;\n\n constructor() ContestTeam(msg.sender) {}\n\n // Helper testing functions.\n function getReservedBalance() public view returns (uint256) {\n return reservedBalance;\n }\n\n function getAvailableBalance() public view returns (uint256) {\n return address(this).balance.sub(reservedBalance);\n }\n\n function getBalance() public view returns (uint256) {\n return address(this).balance;\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol", "exportedSymbols": { - "ContestTeamMock": [2636] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "ContestTeamMock": [2747], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2637, + "id": 2748, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2587, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2696, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "40:31:11" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2588, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2697, "nodeType": "ImportDirective", - "scope": 2637, - "sourceUnit": 4216, - "src": "25:59:11", + "scope": 2748, + "sourceUnit": 3815, + "src": "73:51:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "file": "../core/ContestTeam.sol", - "id": 2589, + "id": 2698, "nodeType": "ImportDirective", - "scope": 2637, - "sourceUnit": 1067, - "src": "86:33:11", + "scope": 2748, + "sourceUnit": 1115, + "src": "126:33:11", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2590, + "id": 2699, "name": "ContestTeam", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1066, - "src": "149:11:11", + "referencedDeclaration": 1114, + "src": "189:11:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } }, - "id": 2591, + "id": 2700, "nodeType": "InheritanceSpecifier", - "src": "149:11:11" + "src": "189:11:11" } ], - "contractDependencies": [1066, 2499, 2869, 2903, 3017], + "contractDependencies": [1114, 2607, 2987, 3026, 3142], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2636, - "linearizedBaseContracts": [2636, 1066, 2499, 3017, 2903, 2869], + "id": 2747, + "linearizedBaseContracts": [2747, 1114, 2607, 3142, 3026, 2987], "name": "ContestTeamMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2594, + "id": 2703, "libraryName": { - "contractScope": null, - "id": 2592, + "id": 2701, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "173:8:11", + "referencedDeclaration": 3814, + "src": "213:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "167:27:11", + "src": "207:27:11", "typeName": { - "id": 2593, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "186:7:11", + "src": "226:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,137 +434,132 @@ }, { "body": { - "id": 2601, + "id": 2710, "nodeType": "Block", - "src": "245:2:11", + "src": "278:2:11", "statements": [] }, - "documentation": null, - "id": 2602, + "id": 2711, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2597, + "id": 2706, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "233:3:11", + "referencedDeclaration": 4294967281, + "src": "266:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2598, + "id": 2707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "233:10:11", + "src": "266:10:11", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2599, + "id": 2708, "modifierName": { - "argumentTypes": null, - "id": 2596, + "id": 2705, "name": "ContestTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "221:11:11", + "referencedDeclaration": 1114, + "src": "254:11:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeam_$1066_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeam_$1114_$", "typeString": "type(contract ContestTeam)" } }, "nodeType": "ModifierInvocation", - "src": "221:23:11" + "src": "254:23:11" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2704, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:11" + "src": "251:2:11" }, "returnParameters": { - "id": 2600, + "id": 2709, "nodeType": "ParameterList", "parameters": [], - "src": "245:0:11" + "src": "278:0:11" }, - "scope": 2636, - "src": "200:47:11", + "scope": 2747, + "src": "240:40:11", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2609, + "id": 2718, "nodeType": "Block", - "src": "346:39:11", + "src": "379:39:11", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2607, + "id": 2716, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "363:15:11", + "referencedDeclaration": 705, + "src": "396:15:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2606, - "id": 2608, + "functionReturnParameters": 2715, + "id": 2717, "nodeType": "Return", - "src": "356:22:11" + "src": "389:22:11" } ] }, - "documentation": null, - "id": 2610, + "functionSelector": "d9a15549", + "id": 2719, "implemented": true, "kind": "function", "modifiers": [], "name": "getReservedBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2603, + "id": 2712, "nodeType": "ParameterList", "parameters": [], - "src": "313:2:11" + "src": "346:2:11" }, "returnParameters": { - "id": 2606, + "id": 2715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2605, + "id": 2714, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2610, - "src": "337:7:11", + "scope": 2719, + "src": "370:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -597,45 +567,42 @@ "typeString": "uint256" }, "typeName": { - "id": 2604, + "id": 2713, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "337:7:11", + "src": "370:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "336:9:11" + "src": "369:9:11" }, - "scope": 2636, - "src": "286:99:11", + "scope": 2747, + "src": "319:99:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2623, + "id": 2733, "nodeType": "Block", - "src": "452:66:11", + "src": "485:66:11", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2620, + "id": 2730, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "495:15:11", + "referencedDeclaration": 705, + "src": "528:15:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -650,20 +617,17 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2616, + "id": 2726, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "477:4:11", + "referencedDeclaration": 4294967268, + "src": "510:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } } @@ -671,24 +635,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } ], - "id": 2615, + "id": 2725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "469:7:11", + "src": "502:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "502:7:11", + "typeDescriptions": {} + } }, - "id": 2617, + "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, @@ -696,41 +666,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "469:13:11", + "src": "502:13:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2618, + "id": 2728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "469:21:11", + "src": "502:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2619, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "469:25:11", + "referencedDeclaration": 3664, + "src": "502:25:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2621, + "id": 2731, "isConstant": false, "isLValue": false, "isPure": false, @@ -738,43 +708,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "469:42:11", + "src": "502:42:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2614, - "id": 2622, + "functionReturnParameters": 2723, + "id": 2732, "nodeType": "Return", - "src": "462:49:11" + "src": "495:49:11" } ] }, - "documentation": null, - "id": 2624, + "functionSelector": "809dab6a", + "id": 2734, "implemented": true, "kind": "function", "modifiers": [], "name": "getAvailableBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2611, + "id": 2720, "nodeType": "ParameterList", "parameters": [], - "src": "419:2:11" + "src": "452:2:11" }, "returnParameters": { - "id": 2614, + "id": 2723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2613, + "id": 2722, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2624, - "src": "443:7:11", + "scope": 2734, + "src": "476:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -782,49 +754,45 @@ "typeString": "uint256" }, "typeName": { - "id": 2612, + "id": 2721, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "443:7:11", + "src": "476:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "442:9:11" + "src": "475:9:11" }, - "scope": 2636, - "src": "391:127:11", + "scope": 2747, + "src": "424:127:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2634, + "id": 2745, "nodeType": "Block", - "src": "576:45:11", + "src": "609:45:11", "statements": [ { "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2630, + "id": 2741, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "601:4:11", + "referencedDeclaration": 4294967268, + "src": "634:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } } @@ -832,24 +800,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } ], - "id": 2629, + "id": 2740, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "593:7:11", + "src": "626:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "626:7:11", + "typeDescriptions": {} + } }, - "id": 2631, + "id": 2742, "isConstant": false, "isLValue": false, "isPure": false, @@ -857,57 +831,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "593:13:11", + "src": "626:13:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2632, + "id": 2743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "593:21:11", + "src": "626:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2628, - "id": 2633, + "functionReturnParameters": 2738, + "id": 2744, "nodeType": "Return", - "src": "586:28:11" + "src": "619:28:11" } ] }, - "documentation": null, - "id": 2635, + "functionSelector": "12065fe0", + "id": 2746, "implemented": true, "kind": "function", "modifiers": [], "name": "getBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2625, + "id": 2735, "nodeType": "ParameterList", "parameters": [], - "src": "543:2:11" + "src": "576:2:11" }, "returnParameters": { - "id": 2628, + "id": 2738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2627, + "id": 2737, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2635, - "src": "567:7:11", + "scope": 2746, + "src": "600:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -915,121 +890,125 @@ "typeString": "uint256" }, "typeName": { - "id": 2626, + "id": 2736, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "567:7:11", + "src": "600:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "566:9:11" + "src": "599:9:11" }, - "scope": 2636, - "src": "524:97:11", + "scope": 2747, + "src": "557:97:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2637, - "src": "121:502:11" + "scope": 2748, + "src": "161:495:11" } ], - "src": "0:624:11" + "src": "40:617:11" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamMock.sol", "exportedSymbols": { - "ContestTeamMock": [2636] + "AttendeeRole": [3142], + "ContestTeam": [1114], + "ContestTeamMock": [2747], + "IPayable": [2987], + "Pausable": [2607], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2637, + "id": 2748, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2587, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2696, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "40:31:11" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2588, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2697, "nodeType": "ImportDirective", - "scope": 2637, - "sourceUnit": 4216, - "src": "25:59:11", + "scope": 2748, + "sourceUnit": 3815, + "src": "73:51:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeam.sol", "file": "../core/ContestTeam.sol", - "id": 2589, + "id": 2698, "nodeType": "ImportDirective", - "scope": 2637, - "sourceUnit": 1067, - "src": "86:33:11", + "scope": 2748, + "sourceUnit": 1115, + "src": "126:33:11", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2590, + "id": 2699, "name": "ContestTeam", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1066, - "src": "149:11:11", + "referencedDeclaration": 1114, + "src": "189:11:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeam_$1066", + "typeIdentifier": "t_contract$_ContestTeam_$1114", "typeString": "contract ContestTeam" } }, - "id": 2591, + "id": 2700, "nodeType": "InheritanceSpecifier", - "src": "149:11:11" + "src": "189:11:11" } ], - "contractDependencies": [1066, 2499, 2869, 2903, 3017], + "contractDependencies": [1114, 2607, 2987, 3026, 3142], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2636, - "linearizedBaseContracts": [2636, 1066, 2499, 3017, 2903, 2869], + "id": 2747, + "linearizedBaseContracts": [2747, 1114, 2607, 3142, 3026, 2987], "name": "ContestTeamMock", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2594, + "id": 2703, "libraryName": { - "contractScope": null, - "id": 2592, + "id": 2701, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "173:8:11", + "referencedDeclaration": 3814, + "src": "213:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "167:27:11", + "src": "207:27:11", "typeName": { - "id": 2593, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "186:7:11", + "src": "226:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1038,137 +1017,132 @@ }, { "body": { - "id": 2601, + "id": 2710, "nodeType": "Block", - "src": "245:2:11", + "src": "278:2:11", "statements": [] }, - "documentation": null, - "id": 2602, + "id": 2711, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2597, + "id": 2706, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "233:3:11", + "referencedDeclaration": 4294967281, + "src": "266:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2598, + "id": 2707, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "233:10:11", + "src": "266:10:11", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2599, + "id": 2708, "modifierName": { - "argumentTypes": null, - "id": 2596, + "id": 2705, "name": "ContestTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1066, - "src": "221:11:11", + "referencedDeclaration": 1114, + "src": "254:11:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeam_$1066_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeam_$1114_$", "typeString": "type(contract ContestTeam)" } }, "nodeType": "ModifierInvocation", - "src": "221:23:11" + "src": "254:23:11" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2704, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:11" + "src": "251:2:11" }, "returnParameters": { - "id": 2600, + "id": 2709, "nodeType": "ParameterList", "parameters": [], - "src": "245:0:11" + "src": "278:0:11" }, - "scope": 2636, - "src": "200:47:11", + "scope": 2747, + "src": "240:40:11", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2609, + "id": 2718, "nodeType": "Block", - "src": "346:39:11", + "src": "379:39:11", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2607, + "id": 2716, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "363:15:11", + "referencedDeclaration": 705, + "src": "396:15:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2606, - "id": 2608, + "functionReturnParameters": 2715, + "id": 2717, "nodeType": "Return", - "src": "356:22:11" + "src": "389:22:11" } ] }, - "documentation": null, - "id": 2610, + "functionSelector": "d9a15549", + "id": 2719, "implemented": true, "kind": "function", "modifiers": [], "name": "getReservedBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2603, + "id": 2712, "nodeType": "ParameterList", "parameters": [], - "src": "313:2:11" + "src": "346:2:11" }, "returnParameters": { - "id": 2606, + "id": 2715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2605, + "id": 2714, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2610, - "src": "337:7:11", + "scope": 2719, + "src": "370:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1176,45 +1150,42 @@ "typeString": "uint256" }, "typeName": { - "id": 2604, + "id": 2713, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "337:7:11", + "src": "370:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "336:9:11" + "src": "369:9:11" }, - "scope": 2636, - "src": "286:99:11", + "scope": 2747, + "src": "319:99:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2623, + "id": 2733, "nodeType": "Block", - "src": "452:66:11", + "src": "485:66:11", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2620, + "id": 2730, "name": "reservedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 678, - "src": "495:15:11", + "referencedDeclaration": 705, + "src": "528:15:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1229,20 +1200,17 @@ } ], "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2616, + "id": 2726, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "477:4:11", + "referencedDeclaration": 4294967268, + "src": "510:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } } @@ -1250,24 +1218,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } ], - "id": 2615, + "id": 2725, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "469:7:11", + "src": "502:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "502:7:11", + "typeDescriptions": {} + } }, - "id": 2617, + "id": 2727, "isConstant": false, "isLValue": false, "isPure": false, @@ -1275,41 +1249,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "469:13:11", + "src": "502:13:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2618, + "id": 2728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "469:21:11", + "src": "502:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2619, + "id": 2729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "469:25:11", + "referencedDeclaration": 3664, + "src": "502:25:11", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2621, + "id": 2731, "isConstant": false, "isLValue": false, "isPure": false, @@ -1317,43 +1291,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "469:42:11", + "src": "502:42:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2614, - "id": 2622, + "functionReturnParameters": 2723, + "id": 2732, "nodeType": "Return", - "src": "462:49:11" + "src": "495:49:11" } ] }, - "documentation": null, - "id": 2624, + "functionSelector": "809dab6a", + "id": 2734, "implemented": true, "kind": "function", "modifiers": [], "name": "getAvailableBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2611, + "id": 2720, "nodeType": "ParameterList", "parameters": [], - "src": "419:2:11" + "src": "452:2:11" }, "returnParameters": { - "id": 2614, + "id": 2723, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2613, + "id": 2722, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2624, - "src": "443:7:11", + "scope": 2734, + "src": "476:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1361,49 +1337,45 @@ "typeString": "uint256" }, "typeName": { - "id": 2612, + "id": 2721, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "443:7:11", + "src": "476:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "442:9:11" + "src": "475:9:11" }, - "scope": 2636, - "src": "391:127:11", + "scope": 2747, + "src": "424:127:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2634, + "id": 2745, "nodeType": "Block", - "src": "576:45:11", + "src": "609:45:11", "statements": [ { "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2630, + "id": 2741, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4282, - "src": "601:4:11", + "referencedDeclaration": 4294967268, + "src": "634:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } } @@ -1411,24 +1383,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ContestTeamMock_$2636", + "typeIdentifier": "t_contract$_ContestTeamMock_$2747", "typeString": "contract ContestTeamMock" } ], - "id": 2629, + "id": 2740, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "593:7:11", + "src": "626:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "626:7:11", + "typeDescriptions": {} + } }, - "id": 2631, + "id": 2742, "isConstant": false, "isLValue": false, "isPure": false, @@ -1436,57 +1414,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "593:13:11", + "src": "626:13:11", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2632, + "id": 2743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "593:21:11", + "src": "626:21:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2628, - "id": 2633, + "functionReturnParameters": 2738, + "id": 2744, "nodeType": "Return", - "src": "586:28:11" + "src": "619:28:11" } ] }, - "documentation": null, - "id": 2635, + "functionSelector": "12065fe0", + "id": 2746, "implemented": true, "kind": "function", "modifiers": [], "name": "getBalance", "nodeType": "FunctionDefinition", "parameters": { - "id": 2625, + "id": 2735, "nodeType": "ParameterList", "parameters": [], - "src": "543:2:11" + "src": "576:2:11" }, "returnParameters": { - "id": 2628, + "id": 2738, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2627, + "id": 2737, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2635, - "src": "567:7:11", + "scope": 2746, + "src": "600:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1494,57 +1473,65 @@ "typeString": "uint256" }, "typeName": { - "id": 2626, + "id": 2736, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "567:7:11", + "src": "600:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "566:9:11" + "src": "599:9:11" }, - "scope": 2636, - "src": "524:97:11", + "scope": 2747, + "src": "557:97:11", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2637, - "src": "121:502:11" + "scope": 2748, + "src": "161:495:11" } ], - "src": "0:624:11" + "src": "40:617:11" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.505Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.093Z", "devdoc": { + "kind": "dev", "methods": { "_unpause()": { "details": "Internal implementation that lifts the paused state." }, "balanceOf()": { - "return": "The balance of a team member" + "returns": { + "_0": "The balance of a team member" + } }, "getActiveMembers()": { - "return": "An array of addresses representing the accounts of active members" + "returns": { + "_0": "An array of addresses representing the accounts of active members" + } }, "getActiveMembersCount()": { - "return": "{uint256} Count of active members" + "returns": { + "_0": "{uint256} Count of active members" + } }, "isPaused()": { - "return": "{true} if the contract is paused; otherwise, {false}." + "returns": { + "_0": "{true} if the contract is paused; otherwise, {false}." + } }, "pause()": { "details": "Implements the onlyAttendee modifier for access control." @@ -1558,9 +1545,22 @@ "withdraw(uint256)": { "details": "Implements the \"withdraw pattern\" allowing members to withdraw funds. The method is public, so inactive members (that renounced membership) are still able to withdraw funds in case balance > 0. " } - } + }, + "version": 1 }, "userdoc": { + "events": { + "Deposit(address,uint256,uint256)": { + "notice": "Event emitted when the contract receives a deposit." + }, + "PrizeSplit(address,uint256,uint256,uint256,uint256)": { + "notice": "emitted when the contract's balance (prize) is split between active members." + }, + "Withdraw(address,uint256,uint256)": { + "notice": "emitted when a member withdraws from the contract." + } + }, + "kind": "user", "methods": { "balanceOf()": { "notice": "Get the balance of a team member" @@ -1589,6 +1589,7 @@ "withdraw(uint256)": { "notice": "Allows a team member to withdraw its funds from the contract." } - } + }, + "version": 1 } } diff --git a/build/contracts/ContestTeamRegistry.json b/build/contracts/ContestTeamRegistry.json index 65c53d3..befabd3 100644 --- a/build/contracts/ContestTeamRegistry.json +++ b/build/contracts/ContestTeamRegistry.json @@ -1,12 +1,6 @@ { "contractName": "ContestTeamRegistry", "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -115,7 +109,6 @@ "type": "event" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -156,12 +149,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -197,12 +188,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -238,12 +227,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -269,12 +256,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -289,30 +274,24 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -322,30 +301,24 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -355,12 +328,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -370,12 +341,10 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -385,12 +354,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -400,75 +367,84 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct. Future improvements: TODO: Add struct to identify team members. TODO: Possibility to request a msg.value for members to signup for contest. TODO: Ability to refund members once they show up to contest. TODO: Add mapping for team members.\",\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"constructor\":{\"details\":\"This class needs to be inherited.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"openRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}}},\"userdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"notice\":\"Controls the registration of teams and the subsequent proposal submission process of the teams participating in a contest.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":\"ContestTeamRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct. Future improvements: TODO: Add struct to identify team members. TODO: Possibility to request a msg.value for members to signup for contest. TODO: Ability to refund members once they show up to contest. TODO: Add mapping for team members.\",\"events\":{\"RegistrationStatusUpdated(bool)\":{\"details\":\"emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}\"},\"SubmissionStatusUpdated(bool)\":{\"details\":\"emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}\"},\"TeamProposalUpdated(uint256,address,bytes32)\":{\"details\":\"emitted when a team's proposal data is updated. See {updateProposalData}\"},\"TeamRegistered(uint256,bytes32,address,bool)\":{\"details\":\"emitted when a new team is registered\"},\"TeamStatusUpdated(uint256,address,bool)\":{\"details\":\"emitted when a team's status is updated. See {approveTeam} and {reproveTeam}\"}},\"kind\":\"dev\",\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"openRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"notice\":\"Controls the registration of teams and the subsequent proposal submission process of the teams participating in a contest.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":\"ContestTeamRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n/**\n @notice Controls the registration of teams and the subsequent proposal submission process\n of the teams participating in a contest.\n @dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\n Future improvements:\n TODO: Add struct to identify team members.\n TODO: Possibility to request a msg.value for members to signup for contest.\n TODO: Ability to refund members once they show up to contest.\n TODO: Add mapping for team members.\n */\ncontract ContestTeamRegistry {\n using SafeMath for uint256;\n\n /// @notice Represents a team participating in a contest.\n struct Team {\n uint256 id;\n bytes32 name;\n address teamAddress;\n bytes32 proposalData;\n bool approved;\n uint256 grade; //FIXME: scale down to a smaller uint type.\n }\n\n // Team's helpers\n // mapping(uint256 => Team) internal teamById;\n mapping(address => Team) internal teamByAddress;\n Team[] public teams;\n uint256 internal approvedTeamsCount;\n bool internal registrationEnabled;\n bool internal submissionEnabled;\n\n /// @dev emitted when a new team is registered\n event TeamRegistered(uint256 indexed teamId, bytes32 teamName, address indexed teamAddress, bool approved);\n /// @dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}\n event RegistrationStatusUpdated(bool enabled);\n /// @dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}\n event SubmissionStatusUpdated(bool enabled);\n /// @dev emitted when a team's proposal data is updated. See {updateProposalData}\n event TeamProposalUpdated(uint256 indexed teamId, address indexed teamAddress, bytes32 proposalData);\n /// @dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}\n event TeamStatusUpdated(uint256 indexed teamId, address indexed teamAddress, bool approved);\n\n modifier registrationIsOpen() {\n require(registrationEnabled, \"Registration is closed\");\n _;\n }\n\n modifier registrationIsClosed() {\n require(!registrationEnabled, \"Registration is open\");\n _;\n }\n\n modifier submissionIsOpen() {\n require(submissionEnabled, \"Submission is closed\");\n _;\n }\n\n modifier submissionIsClosed() {\n require(!submissionEnabled, \"Submission is open\");\n _;\n }\n\n modifier validTeamId(uint256 teamId) {\n require(isValidTeamId(teamId), \"Invalid team id\");\n _;\n }\n\n modifier teamIsApproved(uint256 teamId) {\n require(isTeamApproved(teamId), \"Team is not approved\");\n _;\n }\n\n modifier teamIsReproved(uint256 teamId) {\n require(!isTeamApproved(teamId), \"Team is not reproved.\");\n _;\n }\n\n ///@dev This class needs to be inherited.\n constructor() internal {}\n\n /**\n @notice Returns the stored information of a team\n @param teamId {uint256} the team's unique identifier returned on registration\n @return {bytes32} team's name\n @return {address} team's address\n @return {bytes32} team's proposal data\n @return {bool} team's status: {true} for approved; {false} for reproved;\n @return {uint256} team's grade\n */\n function getTeam(uint256 teamId)\n public\n view\n validTeamId(teamId)\n returns (bytes32, address, bytes32, bool, uint256)\n {\n Team memory team = teams[teamId];\n return (team.name, team.teamAddress, team.proposalData, team.approved, team.grade);\n }\n\n /**\n @notice Returns the stored information of a team, based on a provided address\n @param teamAddress {address} the team's contract address used on registration\n @return {bytes32} team's name\n @return {address} team's address\n @return {bytes32} team's proposal data\n @return {bool} team's status: {true} for approved; {false} for reproved;\n @return {uint256} team's grade\n */\n function getTeamByAddress(address teamAddress) public view returns (bytes32, address, bytes32, bool, uint256) {\n require(teamAddress != address(0), \"Invalid zero address\");\n Team memory team = teamByAddress[teamAddress];\n return (team.name, team.teamAddress, team.proposalData, team.approved, team.grade);\n }\n\n /**\n @notice Registers a new team in the contest registry.\n @dev Registration process must be open.\n @param teamName {bytes32} team's name; required\n @param teamName {bytes32} team's name; required\n @param teamName {bytes32} team's proposal data; could be a hash for a file \n on IPFS or for a github link; not required\n */\n function registerTeam(bytes32 teamName, address teamAddress, bytes32 proposalData)\n external\n registrationIsOpen\n returns (uint256)\n {\n require(teamName[0] != 0, \"Team name cannot be empty\");\n require(teamAddress != address(0), \"Team address cannot be zero\");\n require(teamByAddress[teamAddress].teamAddress == address(0), \"Team already registered\");\n uint256 teamId = teams.length;\n // Teams are initialy approved. Based on expectation that most teams would be approved to participate in the contest,\n // avoiding organizers to send multiple or incurring in additional transaction cost to approve the majority of teams.\n // If needed, organizers can send transactions to reprove teams (less transactions == less cost);\n Team memory team = Team(teamId, teamName, teamAddress, proposalData, true, 0);\n teams.push(team);\n teamByAddress[teamAddress] = teams[teamId];\n approvedTeamsCount = approvedTeamsCount.add(1);\n emit TeamRegistered(teamId, teamName, teamAddress, true);\n return teamId;\n }\n\n /**\n @notice Updates the proposal data for a specific team.\n @param teamId team's unique identifier; required\n @param proposalData the updated data for the team's proposal\n */\n function updateProposalData(uint256 teamId, bytes32 proposalData)\n external\n validTeamId(teamId)\n teamIsApproved(teamId)\n submissionIsOpen\n {\n Team storage team = teams[teamId];\n team.proposalData = proposalData;\n emit TeamProposalUpdated(team.id, team.teamAddress, team.proposalData);\n }\n\n /**\n @notice Closes the registration process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeRegistration() external registrationIsOpen {\n _closeRegistration();\n }\n\n /**\n @notice Opens the registration process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openRegistration() external registrationIsClosed {\n _openRegistration();\n }\n\n /**\n @notice Gets the registration status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getRegistrationStatus() external view returns (bool) {\n return registrationEnabled;\n }\n\n /**\n @notice Closes the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeSubmission() external submissionIsOpen {\n _closeSubmission();\n }\n\n /**\n @notice Opens the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openSubmission() external submissionIsClosed {\n _openSubmission();\n }\n\n /**\n @notice Gets the submission status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getSubmissionStatus() external view returns (bool) {\n return submissionEnabled;\n }\n\n /**\n @notice (re)approves a team in participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamId {uint256} the ids of the teams to be approved\n */\n function approveTeam(uint256 teamId) external {\n _approveTeam(teamId);\n }\n\n /**\n @notice reprove teams from participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamIds {uint256[]} an array containing the ids of the teams to be reproved\n */\n function reproveTeams(uint256[] calldata teamIds) external {\n _reproveTeams(teamIds);\n }\n\n /**\n @notice reproves a team from participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamId {uint256} the ids of the teams to be reproved\n */\n function reproveTeam(uint256 teamId) external {\n _reproveTeam(teamId);\n }\n\n ///@dev internal implementation\n function _closeRegistration() internal {\n registrationEnabled = false;\n emit RegistrationStatusUpdated(registrationEnabled);\n }\n\n ///@dev internal implementation\n function _openRegistration() internal {\n registrationEnabled = true;\n emit RegistrationStatusUpdated(registrationEnabled);\n }\n\n function _closeSubmission() internal {\n submissionEnabled = false;\n emit SubmissionStatusUpdated(submissionEnabled);\n }\n\n ///@dev internal implementation\n function _openSubmission() internal {\n submissionEnabled = true;\n emit SubmissionStatusUpdated(submissionEnabled);\n }\n\n ///@dev internal implementation\n function _approveTeam(uint256 teamId) internal validTeamId(teamId) teamIsReproved(teamId) {\n Team storage team = teams[teamId];\n team.approved = true;\n approvedTeamsCount = approvedTeamsCount.add(1);\n emit TeamStatusUpdated(team.id, team.teamAddress, team.approved);\n }\n\n ///@dev internal implementation\n function _reproveTeams(uint256[] memory teamIds) internal {\n for (uint256 i = 0; i < teamIds.length; i++) {\n _reproveTeam(teamIds[i]);\n }\n }\n\n ///@dev internal implementation\n function _reproveTeam(uint256 teamId) internal validTeamId(teamId) teamIsApproved(teamId) {\n Team storage team = teams[teamId];\n team.approved = false;\n approvedTeamsCount = approvedTeamsCount.sub(1);\n emit TeamStatusUpdated(team.id, team.teamAddress, team.approved);\n }\n\n ///@dev internal implementation\n function isValidTeamId(uint256 teamId) internal view returns (bool) {\n return (teamId < teams.length);\n }\n\n ///@dev internal implementation\n function isTeamApproved(uint256 teamId) internal view returns (bool) {\n if (!isValidTeamId(teamId)) {\n return false;\n }\n\n Team memory team = teams[teamId];\n return team.approved;\n }\n}\n", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\n/**\n @notice Controls the registration of teams and the subsequent proposal submission process\n of the teams participating in a contest.\n @dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\n Future improvements:\n TODO: Add struct to identify team members.\n TODO: Possibility to request a msg.value for members to signup for contest.\n TODO: Ability to refund members once they show up to contest.\n TODO: Add mapping for team members.\n */\nabstract contract ContestTeamRegistry {\n using SafeMath for uint256;\n\n /// @notice Represents a team participating in a contest.\n struct Team {\n uint256 id;\n bytes32 name;\n address teamAddress;\n bytes32 proposalData;\n bool approved;\n uint256 grade; //FIXME: scale down to a smaller uint type.\n }\n\n // Team's helpers\n // mapping(uint256 => Team) internal teamById;\n mapping(address => Team) internal teamByAddress;\n Team[] public teams;\n uint256 internal approvedTeamsCount;\n bool internal registrationEnabled;\n bool internal submissionEnabled;\n\n /// @dev emitted when a new team is registered\n event TeamRegistered(uint256 indexed teamId, bytes32 teamName, address indexed teamAddress, bool approved);\n /// @dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}\n event RegistrationStatusUpdated(bool enabled);\n /// @dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}\n event SubmissionStatusUpdated(bool enabled);\n /// @dev emitted when a team's proposal data is updated. See {updateProposalData}\n event TeamProposalUpdated(uint256 indexed teamId, address indexed teamAddress, bytes32 proposalData);\n /// @dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}\n event TeamStatusUpdated(uint256 indexed teamId, address indexed teamAddress, bool approved);\n\n modifier registrationIsOpen() {\n require(registrationEnabled, \"Registration is closed\");\n _;\n }\n\n modifier registrationIsClosed() {\n require(!registrationEnabled, \"Registration is open\");\n _;\n }\n\n modifier submissionIsOpen() {\n require(submissionEnabled, \"Submission is closed\");\n _;\n }\n\n modifier submissionIsClosed() {\n require(!submissionEnabled, \"Submission is open\");\n _;\n }\n\n modifier validTeamId(uint256 teamId) {\n require(isValidTeamId(teamId), \"Invalid team id\");\n _;\n }\n\n modifier teamIsApproved(uint256 teamId) {\n require(isTeamApproved(teamId), \"Team is not approved\");\n _;\n }\n\n modifier teamIsReproved(uint256 teamId) {\n require(!isTeamApproved(teamId), \"Team is not reproved.\");\n _;\n }\n\n /**\n @notice Returns the stored information of a team\n @param teamId {uint256} the team's unique identifier returned on registration\n @return {bytes32} team's name\n @return {address} team's address\n @return {bytes32} team's proposal data\n @return {bool} team's status: {true} for approved; {false} for reproved;\n @return {uint256} team's grade\n */\n function getTeam(uint256 teamId)\n public\n view\n validTeamId(teamId)\n returns (bytes32, address, bytes32, bool, uint256)\n {\n Team memory team = teams[teamId];\n return (team.name, team.teamAddress, team.proposalData, team.approved, team.grade);\n }\n\n /**\n @notice Returns the stored information of a team, based on a provided address\n @param teamAddress {address} the team's contract address used on registration\n @return {bytes32} team's name\n @return {address} team's address\n @return {bytes32} team's proposal data\n @return {bool} team's status: {true} for approved; {false} for reproved;\n @return {uint256} team's grade\n */\n function getTeamByAddress(address teamAddress) public view returns (bytes32, address, bytes32, bool, uint256) {\n require(teamAddress != address(0), \"Invalid zero address\");\n Team memory team = teamByAddress[teamAddress];\n return (team.name, team.teamAddress, team.proposalData, team.approved, team.grade);\n }\n\n /**\n @notice Registers a new team in the contest registry.\n @dev Registration process must be open.\n @param teamName {bytes32} team's name; required\n @param teamName {bytes32} team's name; required\n @param teamName {bytes32} team's proposal data; could be a hash for a file \n on IPFS or for a github link; not required\n */\n function registerTeam(bytes32 teamName, address teamAddress, bytes32 proposalData)\n external\n registrationIsOpen\n returns (uint256)\n {\n require(teamName[0] != 0, \"Team name cannot be empty\");\n require(teamAddress != address(0), \"Team address cannot be zero\");\n require(teamByAddress[teamAddress].teamAddress == address(0), \"Team already registered\");\n uint256 teamId = teams.length;\n // Teams are initialy approved. Based on expectation that most teams would be approved to participate in the contest,\n // avoiding organizers to send multiple or incurring in additional transaction cost to approve the majority of teams.\n // If needed, organizers can send transactions to reprove teams (less transactions == less cost);\n Team memory team = Team(teamId, teamName, teamAddress, proposalData, true, 0);\n teams.push(team);\n teamByAddress[teamAddress] = teams[teamId];\n approvedTeamsCount = approvedTeamsCount.add(1);\n emit TeamRegistered(teamId, teamName, teamAddress, true);\n return teamId;\n }\n\n /**\n @notice Updates the proposal data for a specific team.\n @param teamId team's unique identifier; required\n @param proposalData the updated data for the team's proposal\n */\n function updateProposalData(uint256 teamId, bytes32 proposalData)\n external\n validTeamId(teamId)\n teamIsApproved(teamId)\n submissionIsOpen\n {\n Team storage team = teams[teamId];\n team.proposalData = proposalData;\n emit TeamProposalUpdated(team.id, team.teamAddress, team.proposalData);\n }\n\n /**\n @notice Closes the registration process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeRegistration() virtual external registrationIsOpen {\n _closeRegistration();\n }\n\n /**\n @notice Opens the registration process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openRegistration() virtual external registrationIsClosed {\n _openRegistration();\n }\n\n /**\n @notice Gets the registration status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getRegistrationStatus() external view returns (bool) {\n return registrationEnabled;\n }\n\n /**\n @notice Closes the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function closeSubmission() virtual external submissionIsOpen {\n _closeSubmission();\n }\n\n /**\n @notice Opens the proposal submission process\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n */\n function openSubmission() virtual external submissionIsClosed {\n _openSubmission();\n }\n\n /**\n @notice Gets the submission status\n @return {bool} returns {true} if enabled; otherwise, {false}.\n */\n function getSubmissionStatus() external view returns (bool) {\n return submissionEnabled;\n }\n\n /**\n @notice (re)approves a team in participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamId {uint256} the ids of the teams to be approved\n */\n function approveTeam(uint256 teamId) external {\n _approveTeam(teamId);\n }\n\n /**\n @notice reprove teams from participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamIds {uint256[]} an array containing the ids of the teams to be reproved\n */\n function reproveTeams(uint256[] calldata teamIds) external {\n _reproveTeams(teamIds);\n }\n\n /**\n @notice reproves a team from participating in the contest\n @dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n @param teamId {uint256} the ids of the teams to be reproved\n */\n function reproveTeam(uint256 teamId) external {\n _reproveTeam(teamId);\n }\n\n ///@dev internal implementation\n function _closeRegistration() internal {\n registrationEnabled = false;\n emit RegistrationStatusUpdated(registrationEnabled);\n }\n\n ///@dev internal implementation\n function _openRegistration() internal {\n registrationEnabled = true;\n emit RegistrationStatusUpdated(registrationEnabled);\n }\n\n function _closeSubmission() internal {\n submissionEnabled = false;\n emit SubmissionStatusUpdated(submissionEnabled);\n }\n\n ///@dev internal implementation\n function _openSubmission() internal {\n submissionEnabled = true;\n emit SubmissionStatusUpdated(submissionEnabled);\n }\n\n ///@dev internal implementation\n function _approveTeam(uint256 teamId) internal validTeamId(teamId) teamIsReproved(teamId) {\n Team storage team = teams[teamId];\n team.approved = true;\n approvedTeamsCount = approvedTeamsCount.add(1);\n emit TeamStatusUpdated(team.id, team.teamAddress, team.approved);\n }\n\n ///@dev internal implementation\n function _reproveTeams(uint256[] memory teamIds) internal {\n for (uint256 i = 0; i < teamIds.length; i++) {\n _reproveTeam(teamIds[i]);\n }\n }\n\n ///@dev internal implementation\n function _reproveTeam(uint256 teamId) internal validTeamId(teamId) teamIsApproved(teamId) {\n Team storage team = teams[teamId];\n team.approved = false;\n approvedTeamsCount = approvedTeamsCount.sub(1);\n emit TeamStatusUpdated(team.id, team.teamAddress, team.approved);\n }\n\n ///@dev internal implementation\n function isValidTeamId(uint256 teamId) internal view returns (bool) {\n return (teamId < teams.length);\n }\n\n ///@dev internal implementation\n function isTeamApproved(uint256 teamId) internal view returns (bool) {\n if (!isValidTeamId(teamId)) {\n return false;\n }\n\n Team memory team = teams[teamId];\n return team.approved;\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol", "exportedSymbols": { - "ContestTeamRegistry": [1698] + "ContestTeamRegistry": [1772], + "SafeMath": [3814] }, - "id": 1699, + "id": 1773, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 1068, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 1116, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "40:31:3" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1069, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 1117, "nodeType": "ImportDirective", - "scope": 1699, - "sourceUnit": 4216, - "src": "25:59:3", + "scope": 1773, + "sourceUnit": 3815, + "src": "73:51:3", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Controls the registration of teams and the subsequent proposal submission process\nof the teams participating in a contest.\n@dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\nFuture improvements:\nTODO: Add struct to identify team members.\nTODO: Possibility to request a msg.value for members to signup for contest.\nTODO: Ability to refund members once they show up to contest.\nTODO: Add mapping for team members.", + "documentation": { + "id": 1118, + "nodeType": "StructuredDocumentation", + "src": "126:544:3", + "text": "@notice Controls the registration of teams and the subsequent proposal submission process\nof the teams participating in a contest.\n@dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\nFuture improvements:\nTODO: Add struct to identify team members.\nTODO: Possibility to request a msg.value for members to signup for contest.\nTODO: Ability to refund members once they show up to contest.\nTODO: Add mapping for team members." + }, "fullyImplemented": true, - "id": 1698, - "linearizedBaseContracts": [1698], + "id": 1772, + "linearizedBaseContracts": [1772], "name": "ContestTeamRegistry", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1072, + "id": 1121, "libraryName": { - "contractScope": null, - "id": 1070, + "id": 1119, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "672:8:3", + "referencedDeclaration": 3814, + "src": "721:8:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "666:27:3", + "src": "715:27:3", "typeName": { - "id": 1071, + "id": 1120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "685:7:3", + "src": "734:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -477,15 +453,16 @@ }, { "canonicalName": "ContestTeamRegistry.Team", - "id": 1085, + "id": 1134, "members": [ { "constant": false, - "id": 1074, + "id": 1123, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "783:10:3", + "scope": 1134, + "src": "832:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -493,25 +470,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 1122, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "783:7:3", + "src": "832:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1076, + "id": 1125, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "803:12:3", + "scope": 1134, + "src": "852:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -519,25 +496,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1075, + "id": 1124, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "803:7:3", + "src": "852:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1078, + "id": 1127, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "825:19:3", + "scope": 1134, + "src": "874:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -545,26 +522,26 @@ "typeString": "address" }, "typeName": { - "id": 1077, + "id": 1126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "825:7:3", + "src": "874:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1080, + "id": 1129, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "854:20:3", + "scope": 1134, + "src": "903:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -572,25 +549,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1079, + "id": 1128, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "854:7:3", + "src": "903:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1082, + "id": 1131, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "884:13:3", + "scope": 1134, + "src": "933:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -598,25 +575,25 @@ "typeString": "bool" }, "typeName": { - "id": 1081, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "884:4:3", + "src": "933:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1084, + "id": 1133, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "907:13:3", + "scope": 1134, + "src": "956:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -624,117 +601,115 @@ "typeString": "uint256" }, "typeName": { - "id": 1083, + "id": 1132, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:3", + "src": "956:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], "name": "Team", "nodeType": "StructDefinition", - "scope": 1698, - "src": "761:210:3", + "scope": 1772, + "src": "810:210:3", "visibility": "public" }, { "constant": false, - "id": 1089, + "id": 1138, + "mutability": "mutable", "name": "teamByAddress", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1050:47:3", + "scope": 1772, + "src": "1099:47:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team)" }, "typeName": { - "id": 1088, + "id": 1137, "keyType": { - "id": 1086, + "id": 1135, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1058:7:3", + "src": "1107:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1050:24:3", + "src": "1099:24:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team)" }, "valueType": { - "contractScope": null, - "id": 1087, + "id": 1136, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "1069:4:3", + "referencedDeclaration": 1134, + "src": "1118:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1092, + "functionSelector": "3ed2b77a", + "id": 1141, + "mutability": "mutable", "name": "teams", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1103:19:3", + "scope": 1772, + "src": "1152:19:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team[]" }, "typeName": { "baseType": { - "contractScope": null, - "id": 1090, + "id": 1139, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "1103:4:3", + "referencedDeclaration": 1134, + "src": "1152:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "id": 1091, - "length": null, + "id": 1140, "nodeType": "ArrayTypeName", - "src": "1103:6:3", + "src": "1152:6:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage_ptr", "typeString": "struct ContestTeamRegistry.Team[]" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1094, + "id": 1143, + "mutability": "mutable", "name": "approvedTeamsCount", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1128:35:3", + "scope": 1772, + "src": "1177:35:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -742,25 +717,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1093, + "id": 1142, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1128:7:3", + "src": "1177:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1096, + "id": 1145, + "mutability": "mutable", "name": "registrationEnabled", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1169:33:3", + "scope": 1772, + "src": "1218:33:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,25 +743,25 @@ "typeString": "bool" }, "typeName": { - "id": 1095, + "id": 1144, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1169:4:3", + "src": "1218:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1098, + "id": 1147, + "mutability": "mutable", "name": "submissionEnabled", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1208:31:3", + "scope": 1772, + "src": "1257:31:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,36 +769,41 @@ "typeString": "bool" }, "typeName": { - "id": 1097, + "id": 1146, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1208:4:3", + "src": "1257:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when a new team is registered", - "id": 1108, + "documentation": { + "id": 1148, + "nodeType": "StructuredDocumentation", + "src": "1295:46:3", + "text": "@dev emitted when a new team is registered" + }, + "id": 1158, "name": "TeamRegistered", "nodeType": "EventDefinition", "parameters": { - "id": 1107, + "id": 1157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1100, + "id": 1150, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1318:22:3", + "scope": 1158, + "src": "1367:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -831,26 +811,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1149, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1318:7:3", + "src": "1367:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1102, + "id": 1152, "indexed": false, + "mutability": "mutable", "name": "teamName", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1342:16:3", + "scope": 1158, + "src": "1391:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -858,26 +838,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 1101, + "id": 1151, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1342:7:3", + "src": "1391:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1104, + "id": 1154, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1360:27:3", + "scope": 1158, + "src": "1409:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -885,27 +865,27 @@ "typeString": "address" }, "typeName": { - "id": 1103, + "id": 1153, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1360:7:3", + "src": "1409:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1106, + "id": 1156, "indexed": false, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1389:13:3", + "scope": 1158, + "src": "1438:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -913,41 +893,46 @@ "typeString": "bool" }, "typeName": { - "id": 1105, + "id": 1155, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1389:4:3", + "src": "1438:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1317:86:3" + "src": "1366:86:3" }, - "src": "1297:107:3" + "src": "1346:107:3" }, { "anonymous": false, - "documentation": "@dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}", - "id": 1112, + "documentation": { + "id": 1159, + "nodeType": "StructuredDocumentation", + "src": "1458:111:3", + "text": "@dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}" + }, + "id": 1163, "name": "RegistrationStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1111, + "id": 1162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1110, + "id": 1161, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 1112, - "src": "1557:12:3", + "scope": 1163, + "src": "1606:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -955,41 +940,46 @@ "typeString": "bool" }, "typeName": { - "id": 1109, + "id": 1160, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1557:4:3", + "src": "1606:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1556:14:3" + "src": "1605:14:3" }, - "src": "1525:46:3" + "src": "1574:46:3" }, { "anonymous": false, - "documentation": "@dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}", - "id": 1116, + "documentation": { + "id": 1164, + "nodeType": "StructuredDocumentation", + "src": "1625:105:3", + "text": "@dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}" + }, + "id": 1168, "name": "SubmissionStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1115, + "id": 1167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1114, + "id": 1166, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 1116, - "src": "1716:12:3", + "scope": 1168, + "src": "1765:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -997,41 +987,46 @@ "typeString": "bool" }, "typeName": { - "id": 1113, + "id": 1165, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1716:4:3", + "src": "1765:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1715:14:3" + "src": "1764:14:3" }, - "src": "1686:44:3" + "src": "1735:44:3" }, { "anonymous": false, - "documentation": "@dev emitted when a team's proposal data is updated. See {updateProposalData}", - "id": 1124, + "documentation": { + "id": 1169, + "nodeType": "StructuredDocumentation", + "src": "1784:81:3", + "text": "@dev emitted when a team's proposal data is updated. See {updateProposalData}" + }, + "id": 1177, "name": "TeamProposalUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1123, + "id": 1176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1118, + "id": 1171, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1847:22:3", + "scope": 1177, + "src": "1896:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1039,26 +1034,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1117, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1847:7:3", + "src": "1896:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1120, + "id": 1173, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1871:27:3", + "scope": 1177, + "src": "1920:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1066,27 +1061,27 @@ "typeString": "address" }, "typeName": { - "id": 1119, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1871:7:3", + "src": "1920:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1122, + "id": 1175, "indexed": false, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1900:20:3", + "scope": 1177, + "src": "1949:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1094,41 +1089,46 @@ "typeString": "bytes32" }, "typeName": { - "id": 1121, + "id": 1174, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1900:7:3", + "src": "1949:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1846:75:3" + "src": "1895:75:3" }, - "src": "1821:101:3" + "src": "1870:101:3" }, { "anonymous": false, - "documentation": "@dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}", - "id": 1132, + "documentation": { + "id": 1178, + "nodeType": "StructuredDocumentation", + "src": "1976:85:3", + "text": "@dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}" + }, + "id": 1186, "name": "TeamStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1131, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1126, + "id": 1180, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2041:22:3", + "scope": 1186, + "src": "2090:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1136,26 +1136,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1125, + "id": 1179, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2041:7:3", + "src": "2090:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1128, + "id": 1182, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2065:27:3", + "scope": 1186, + "src": "2114:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1163,27 +1163,27 @@ "typeString": "address" }, "typeName": { - "id": 1127, + "id": 1181, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2065:7:3", + "src": "2114:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1130, + "id": 1184, "indexed": false, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2094:13:3", + "scope": 1186, + "src": "2143:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1191,58 +1191,53 @@ "typeString": "bool" }, "typeName": { - "id": 1129, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2094:4:3", + "src": "2143:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2040:68:3" + "src": "2089:68:3" }, - "src": "2017:92:3" + "src": "2066:92:3" }, { "body": { - "id": 1140, + "id": 1194, "nodeType": "Block", - "src": "2145:82:3", + "src": "2194:82:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1135, + "id": 1189, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2163:19:3", + "referencedDeclaration": 1145, + "src": "2212:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526567697374726174696f6e20697320636c6f736564", - "id": 1136, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2184:24:3", - "subdenomination": null, + "src": "2233:24:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_165f485d6f027a34a6513fac264b18a05f1df4e6f9bc08e6d832426c02091bd3", "typeString": "literal_string \"Registration is closed\"" @@ -1261,18 +1256,18 @@ "typeString": "literal_string \"Registration is closed\"" } ], - "id": 1134, + "id": 1188, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2155:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2204:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1137, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": false, @@ -1280,49 +1275,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2155:54:3", + "src": "2204:54:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1138, + "id": 1192, "nodeType": "ExpressionStatement", - "src": "2155:54:3" + "src": "2204:54:3" }, { - "id": 1139, + "id": 1193, "nodeType": "PlaceholderStatement", - "src": "2219:1:3" + "src": "2268:1:3" } ] }, - "documentation": null, - "id": 1141, + "id": 1195, "name": "registrationIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1133, + "id": 1187, "nodeType": "ParameterList", "parameters": [], - "src": "2142:2:3" + "src": "2191:2:3" }, - "src": "2115:112:3", + "src": "2164:112:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1150, + "id": 1204, "nodeType": "Block", - "src": "2265:81:3", + "src": "2314:81:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1145, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": false, @@ -1330,15 +1324,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2283:20:3", + "src": "2332:20:3", "subExpression": { - "argumentTypes": null, - "id": 1144, + "id": 1198, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2284:19:3", + "referencedDeclaration": 1145, + "src": "2333:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1350,17 +1343,15 @@ } }, { - "argumentTypes": null, "hexValue": "526567697374726174696f6e206973206f70656e", - "id": 1146, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2305:22:3", - "subdenomination": null, + "src": "2354:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6a1a19eb3ff348bc505cf62fbc5a8ce5bd035770d300520d27aaf7ccfa8a7767", "typeString": "literal_string \"Registration is open\"" @@ -1379,18 +1370,18 @@ "typeString": "literal_string \"Registration is open\"" } ], - "id": 1143, + "id": 1197, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2275:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2324:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1147, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, @@ -1398,71 +1389,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2275:53:3", + "src": "2324:53:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1148, + "id": 1202, "nodeType": "ExpressionStatement", - "src": "2275:53:3" + "src": "2324:53:3" }, { - "id": 1149, + "id": 1203, "nodeType": "PlaceholderStatement", - "src": "2338:1:3" + "src": "2387:1:3" } ] }, - "documentation": null, - "id": 1151, + "id": 1205, "name": "registrationIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 1142, + "id": 1196, "nodeType": "ParameterList", "parameters": [], - "src": "2262:2:3" + "src": "2311:2:3" }, - "src": "2233:113:3", + "src": "2282:113:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1159, + "id": 1213, "nodeType": "Block", - "src": "2380:78:3", + "src": "2429:78:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1154, + "id": 1208, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "2398:17:3", + "referencedDeclaration": 1147, + "src": "2447:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5375626d697373696f6e20697320636c6f736564", - "id": 1155, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2417:22:3", - "subdenomination": null, + "src": "2466:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a18bec0366cac989658e03e4a58fe978db1cb03c7023b7f1e3639200cd2f6cd9", "typeString": "literal_string \"Submission is closed\"" @@ -1481,18 +1469,18 @@ "typeString": "literal_string \"Submission is closed\"" } ], - "id": 1153, + "id": 1207, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2390:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2439:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1156, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, @@ -1500,49 +1488,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2390:50:3", + "src": "2439:50:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1157, + "id": 1211, "nodeType": "ExpressionStatement", - "src": "2390:50:3" + "src": "2439:50:3" }, { - "id": 1158, + "id": 1212, "nodeType": "PlaceholderStatement", - "src": "2450:1:3" + "src": "2499:1:3" } ] }, - "documentation": null, - "id": 1160, + "id": 1214, "name": "submissionIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1152, + "id": 1206, "nodeType": "ParameterList", "parameters": [], - "src": "2377:2:3" + "src": "2426:2:3" }, - "src": "2352:106:3", + "src": "2401:106:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1169, + "id": 1223, "nodeType": "Block", - "src": "2494:77:3", + "src": "2543:77:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1164, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, @@ -1550,15 +1537,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2512:18:3", + "src": "2561:18:3", "subExpression": { - "argumentTypes": null, - "id": 1163, + "id": 1217, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "2513:17:3", + "referencedDeclaration": 1147, + "src": "2562:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1570,17 +1556,15 @@ } }, { - "argumentTypes": null, "hexValue": "5375626d697373696f6e206973206f70656e", - "id": 1165, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2532:20:3", - "subdenomination": null, + "src": "2581:20:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0045a0a9140511cead0d352a5693cb76a5e30a49ce0769e73f7976a9c6cf7fb4", "typeString": "literal_string \"Submission is open\"" @@ -1599,18 +1583,18 @@ "typeString": "literal_string \"Submission is open\"" } ], - "id": 1162, + "id": 1216, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2504:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2553:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1166, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, @@ -1618,57 +1602,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2504:49:3", + "src": "2553:49:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1167, + "id": 1221, "nodeType": "ExpressionStatement", - "src": "2504:49:3" + "src": "2553:49:3" }, { - "id": 1168, + "id": 1222, "nodeType": "PlaceholderStatement", - "src": "2563:1:3" + "src": "2612:1:3" } ] }, - "documentation": null, - "id": 1170, + "id": 1224, "name": "submissionIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 1161, + "id": 1215, "nodeType": "ParameterList", "parameters": [], - "src": "2491:2:3" + "src": "2540:2:3" }, - "src": "2464:107:3", + "src": "2513:107:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1182, + "id": 1236, "nodeType": "Block", - "src": "2614:77:3", + "src": "2663:77:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1176, + "id": 1230, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1172, - "src": "2646:6:3", + "referencedDeclaration": 1226, + "src": "2695:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1682,18 +1664,18 @@ "typeString": "uint256" } ], - "id": 1175, + "id": 1229, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "2632:13:3", + "referencedDeclaration": 1745, + "src": "2681:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1177, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, @@ -1701,24 +1683,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:21:3", + "src": "2681:21:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207465616d206964", - "id": 1178, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2655:17:3", - "subdenomination": null, + "src": "2704:17:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_571f2ed6e8a5538ea54204f561cb7ffcc7bba9fb904df91289afa3cee0194bbc", "typeString": "literal_string \"Invalid team id\"" @@ -1737,18 +1718,18 @@ "typeString": "literal_string \"Invalid team id\"" } ], - "id": 1174, + "id": 1228, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2624:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2673:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1179, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -1756,38 +1737,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2624:49:3", + "src": "2673:49:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1180, + "id": 1234, "nodeType": "ExpressionStatement", - "src": "2624:49:3" + "src": "2673:49:3" }, { - "id": 1181, + "id": 1235, "nodeType": "PlaceholderStatement", - "src": "2683:1:3" + "src": "2732:1:3" } ] }, - "documentation": null, - "id": 1183, + "id": 1237, "name": "validTeamId", "nodeType": "ModifierDefinition", "parameters": { - "id": 1173, + "id": 1227, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1172, + "id": 1226, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1183, - "src": "2598:14:3", + "scope": 1237, + "src": "2647:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1795,45 +1777,42 @@ "typeString": "uint256" }, "typeName": { - "id": 1171, + "id": 1225, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2598:7:3", + "src": "2647:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2597:16:3" + "src": "2646:16:3" }, - "src": "2577:114:3", + "src": "2626:114:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1195, + "id": 1249, "nodeType": "Block", - "src": "2737:83:3", + "src": "2786:83:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1189, + "id": 1243, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1185, - "src": "2770:6:3", + "referencedDeclaration": 1239, + "src": "2819:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1847,18 +1826,18 @@ "typeString": "uint256" } ], - "id": 1188, + "id": 1242, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "2755:14:3", + "referencedDeclaration": 1771, + "src": "2804:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1190, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, @@ -1866,24 +1845,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2755:22:3", + "src": "2804:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420617070726f766564", - "id": 1191, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2779:22:3", - "subdenomination": null, + "src": "2828:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_93b89bf7b168f7f31c6e9087225242369de79bf9b7b75b2a443371536dcc9123", "typeString": "literal_string \"Team is not approved\"" @@ -1902,18 +1880,18 @@ "typeString": "literal_string \"Team is not approved\"" } ], - "id": 1187, + "id": 1241, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2747:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2796:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1192, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -1921,38 +1899,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2747:55:3", + "src": "2796:55:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1193, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "2747:55:3" + "src": "2796:55:3" }, { - "id": 1194, + "id": 1248, "nodeType": "PlaceholderStatement", - "src": "2812:1:3" + "src": "2861:1:3" } ] }, - "documentation": null, - "id": 1196, + "id": 1250, "name": "teamIsApproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 1186, + "id": 1240, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1185, + "id": 1239, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1196, - "src": "2721:14:3", + "scope": 1250, + "src": "2770:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1960,37 +1939,35 @@ "typeString": "uint256" }, "typeName": { - "id": 1184, + "id": 1238, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2721:7:3", + "src": "2770:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2720:16:3" + "src": "2769:16:3" }, - "src": "2697:123:3", + "src": "2746:123:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1209, + "id": 1263, "nodeType": "Block", - "src": "2866:85:3", + "src": "2915:85:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1204, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -1998,18 +1975,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2884:23:3", + "src": "2933:23:3", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1202, + "id": 1256, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "2900:6:3", + "referencedDeclaration": 1252, + "src": "2949:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2023,18 +1998,18 @@ "typeString": "uint256" } ], - "id": 1201, + "id": 1255, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "2885:14:3", + "referencedDeclaration": 1771, + "src": "2934:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1203, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, @@ -2042,7 +2017,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2885:22:3", + "src": "2934:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2054,17 +2030,15 @@ } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420726570726f7665642e", - "id": 1205, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2909:23:3", - "subdenomination": null, + "src": "2958:23:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f6774fb2887550878442301d45839e1dedc976e8e25e50f9ff79773b0799591", "typeString": "literal_string \"Team is not reproved.\"" @@ -2083,18 +2057,18 @@ "typeString": "literal_string \"Team is not reproved.\"" } ], - "id": 1200, + "id": 1254, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2876:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2925:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1206, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -2102,38 +2076,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2876:57:3", + "src": "2925:57:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1207, + "id": 1261, "nodeType": "ExpressionStatement", - "src": "2876:57:3" + "src": "2925:57:3" }, { - "id": 1208, + "id": 1262, "nodeType": "PlaceholderStatement", - "src": "2943:1:3" + "src": "2992:1:3" } ] }, - "documentation": null, - "id": 1210, + "id": 1264, "name": "teamIsReproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 1199, + "id": 1253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1198, + "id": 1252, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "2850:14:3", + "scope": 1264, + "src": "2899:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2141,119 +2116,83 @@ "typeString": "uint256" }, "typeName": { - "id": 1197, + "id": 1251, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2850:7:3", + "src": "2899:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2849:16:3" + "src": "2898:16:3" }, - "src": "2826:125:3", + "src": "2875:125:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1213, - "nodeType": "Block", - "src": "3026:2:3", - "statements": [] - }, - "documentation": "@dev This class needs to be inherited.", - "id": 1214, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1211, - "nodeType": "ParameterList", - "parameters": [], - "src": "3014:2:3" - }, - "returnParameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [], - "src": "3026:0:3" - }, - "scope": 1698, - "src": "3003:25:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1250, + "id": 1301, "nodeType": "Block", - "src": "3591:141:3", + "src": "3563:141:3", "statements": [ { - "assignments": [1233], + "assignments": [1284], "declarations": [ { "constant": false, - "id": 1233, + "id": 1284, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1250, - "src": "3601:16:3", + "scope": 1301, + "src": "3573:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1232, + "id": 1283, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "3601:4:3", + "referencedDeclaration": 1134, + "src": "3573:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1237, + "id": 1288, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1234, + "id": 1285, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "3620:5:3", + "referencedDeclaration": 1141, + "src": "3592:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1236, + "id": 1287, "indexExpression": { - "argumentTypes": null, - "id": 1235, + "id": 1286, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3626:6:3", + "referencedDeclaration": 1267, + "src": "3598:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2264,237 +2203,231 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3620:13:3", + "src": "3592:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3601:32:3" + "src": "3573:32:3" }, { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1238, + "id": 1289, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3651:4:3", + "referencedDeclaration": 1284, + "src": "3623:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1239, + "id": 1290, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "3651:9:3", + "referencedDeclaration": 1125, + "src": "3623:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1240, + "id": 1291, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3662:4:3", + "referencedDeclaration": 1284, + "src": "3634:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1241, + "id": 1292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "3662:16:3", + "referencedDeclaration": 1127, + "src": "3634:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1242, + "id": 1293, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3680:4:3", + "referencedDeclaration": 1284, + "src": "3652:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1243, + "id": 1294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "3680:17:3", + "referencedDeclaration": 1129, + "src": "3652:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1244, + "id": 1295, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3699:4:3", + "referencedDeclaration": 1284, + "src": "3671:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1245, + "id": 1296, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "3699:13:3", + "referencedDeclaration": 1131, + "src": "3671:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1246, + "id": 1297, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3714:4:3", + "referencedDeclaration": 1284, + "src": "3686:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1247, + "id": 1298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "3714:10:3", + "referencedDeclaration": 1133, + "src": "3686:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1248, + "id": 1299, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3650:75:3", + "src": "3622:75:3", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_bytes32_$_t_bool_$_t_uint256_$", "typeString": "tuple(bytes32,address,bytes32,bool,uint256)" } }, - "functionReturnParameters": 1231, - "id": 1249, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "3643:82:3" + "src": "3615:82:3" } ] }, - "documentation": "@notice Returns the stored information of a team\n@param teamId {uint256} the team's unique identifier returned on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade", - "id": 1251, + "documentation": { + "id": 1265, + "nodeType": "StructuredDocumentation", + "src": "3006:400:3", + "text": "@notice Returns the stored information of a team\n@param teamId {uint256} the team's unique identifier returned on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade" + }, + "functionSelector": "008e0f1b", + "id": 1302, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1219, + "id": 1270, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3520:6:3", + "referencedDeclaration": 1267, + "src": "3492:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1220, + "id": 1271, "modifierName": { - "argumentTypes": null, - "id": 1218, + "id": 1269, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "3508:11:3", + "referencedDeclaration": 1237, + "src": "3480:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "3508:19:3" + "src": "3480:19:3" } ], "name": "getTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1217, + "id": 1268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1216, + "id": 1267, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3456:14:3", + "scope": 1302, + "src": "3428:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2502,32 +2435,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1215, + "id": 1266, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3456:7:3", + "src": "3428:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3455:16:3" + "src": "3427:16:3" }, "returnParameters": { - "id": 1231, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1222, + "id": 1273, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3545:7:3", + "scope": 1302, + "src": "3517:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2535,25 +2468,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1221, + "id": 1272, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3545:7:3", + "src": "3517:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1224, + "id": 1275, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3554:7:3", + "scope": 1302, + "src": "3526:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2561,26 +2494,26 @@ "typeString": "address" }, "typeName": { - "id": 1223, + "id": 1274, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3554:7:3", + "src": "3526:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1226, + "id": 1277, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3563:7:3", + "scope": 1302, + "src": "3535:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2588,25 +2521,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1225, + "id": 1276, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3563:7:3", + "src": "3535:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1228, + "id": 1279, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3572:4:3", + "scope": 1302, + "src": "3544:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2614,25 +2547,25 @@ "typeString": "bool" }, "typeName": { - "id": 1227, + "id": 1278, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3572:4:3", + "src": "3544:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1230, + "id": 1281, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3578:7:3", + "scope": 1302, + "src": "3550:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2640,56 +2573,52 @@ "typeString": "uint256" }, "typeName": { - "id": 1229, + "id": 1280, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3578:7:3", + "src": "3550:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3544:42:3" + "src": "3516:42:3" }, - "scope": 1698, - "src": "3439:293:3", + "scope": 1772, + "src": "3411:293:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1293, + "id": 1346, "nodeType": "Block", - "src": "4282:222:3", + "src": "4254:222:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1271, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1267, + "id": 1319, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1253, - "src": "4300:11:3", + "referencedDeclaration": 1305, + "src": "4272:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2698,20 +2627,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1269, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4323:1:3", - "subdenomination": null, + "src": "4295:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2726,20 +2652,26 @@ "typeString": "int_const 0" } ], - "id": 1268, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4315:7:3", + "src": "4287:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4287:7:3", + "typeDescriptions": {} + } }, - "id": 1270, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -2747,30 +2679,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4315:10:3", + "src": "4287:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4300:25:3", + "src": "4272:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 1272, + "id": 1325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4327:22:3", - "subdenomination": null, + "src": "4299:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -2789,18 +2720,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 1266, + "id": 1318, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4292:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4264:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1273, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -2808,73 +2739,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4292:58:3", + "src": "4264:58:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1274, + "id": 1327, "nodeType": "ExpressionStatement", - "src": "4292:58:3" + "src": "4264:58:3" }, { - "assignments": [1276], + "assignments": [1329], "declarations": [ { "constant": false, - "id": 1276, + "id": 1329, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4360:16:3", + "scope": 1346, + "src": "4332:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1275, + "id": 1328, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4360:4:3", + "referencedDeclaration": 1134, + "src": "4332:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1280, + "id": 1333, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1277, + "id": 1330, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "4379:13:3", + "referencedDeclaration": 1138, + "src": "4351:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1279, + "id": 1332, "indexExpression": { - "argumentTypes": null, - "id": 1278, + "id": 1331, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1253, - "src": "4393:11:3", + "referencedDeclaration": 1305, + "src": "4365:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2885,203 +2813,199 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4379:26:3", + "src": "4351:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "4360:45:3" + "src": "4332:45:3" }, { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1281, + "id": 1334, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4423:4:3", + "referencedDeclaration": 1329, + "src": "4395:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1282, + "id": 1335, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "4423:9:3", + "referencedDeclaration": 1125, + "src": "4395:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1283, + "id": 1336, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4434:4:3", + "referencedDeclaration": 1329, + "src": "4406:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1284, + "id": 1337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4434:16:3", + "referencedDeclaration": 1127, + "src": "4406:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1285, + "id": 1338, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4452:4:3", + "referencedDeclaration": 1329, + "src": "4424:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1286, + "id": 1339, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "4452:17:3", + "referencedDeclaration": 1129, + "src": "4424:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1287, + "id": 1340, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4471:4:3", + "referencedDeclaration": 1329, + "src": "4443:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1288, + "id": 1341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "4471:13:3", + "referencedDeclaration": 1131, + "src": "4443:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1289, + "id": 1342, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4486:4:3", + "referencedDeclaration": 1329, + "src": "4458:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1290, + "id": 1343, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4486:10:3", + "referencedDeclaration": 1133, + "src": "4458:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1291, + "id": 1344, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4422:75:3", + "src": "4394:75:3", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_bytes32_$_t_bool_$_t_uint256_$", "typeString": "tuple(bytes32,address,bytes32,bool,uint256)" } }, - "functionReturnParameters": 1265, - "id": 1292, + "functionReturnParameters": 1317, + "id": 1345, "nodeType": "Return", - "src": "4415:82:3" + "src": "4387:82:3" } ] }, - "documentation": "@notice Returns the stored information of a team, based on a provided address\n@param teamAddress {address} the team's contract address used on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade", - "id": 1294, + "documentation": { + "id": 1303, + "nodeType": "StructuredDocumentation", + "src": "3710:429:3", + "text": "@notice Returns the stored information of a team, based on a provided address\n@param teamAddress {address} the team's contract address used on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade" + }, + "functionSelector": "4ea701a8", + "id": 1347, "implemented": true, "kind": "function", "modifiers": [], "name": "getTeamByAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1254, + "id": 1306, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1253, + "id": 1305, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4198:19:3", + "scope": 1347, + "src": "4170:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3089,33 +3013,33 @@ "typeString": "address" }, "typeName": { - "id": 1252, + "id": 1304, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4198:7:3", + "src": "4170:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "4197:21:3" + "src": "4169:21:3" }, "returnParameters": { - "id": 1265, + "id": 1317, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1256, + "id": 1308, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4240:7:3", + "scope": 1347, + "src": "4212:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3123,25 +3047,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1255, + "id": 1307, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4240:7:3", + "src": "4212:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1258, + "id": 1310, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4249:7:3", + "scope": 1347, + "src": "4221:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3149,26 +3073,26 @@ "typeString": "address" }, "typeName": { - "id": 1257, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4249:7:3", + "src": "4221:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1260, + "id": 1312, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4258:7:3", + "scope": 1347, + "src": "4230:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3176,25 +3100,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1259, + "id": 1311, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4258:7:3", + "src": "4230:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1262, + "id": 1314, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4267:4:3", + "scope": 1347, + "src": "4239:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3202,25 +3126,25 @@ "typeString": "bool" }, "typeName": { - "id": 1261, + "id": 1313, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4267:4:3", + "src": "4239:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1264, + "id": 1316, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4273:7:3", + "scope": 1347, + "src": "4245:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3228,76 +3152,69 @@ "typeString": "uint256" }, "typeName": { - "id": 1263, + "id": 1315, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4273:7:3", + "src": "4245:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "4239:42:3" + "src": "4211:42:3" }, - "scope": 1698, - "src": "4172:332:3", + "scope": 1772, + "src": "4144:332:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1383, + "id": 1439, "nodeType": "Block", - "src": "5044:951:3", + "src": "5016:951:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 1312, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1308, + "id": 1362, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5062:8:3", + "referencedDeclaration": 1350, + "src": "5034:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1310, + "id": 1364, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1309, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5071:1:3", - "subdenomination": null, + "src": "5043:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3309,7 +3226,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5062:11:3", + "src": "5034:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -3318,41 +3235,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1311, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5077:1:3", - "subdenomination": null, + "src": "5049:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5062:16:3", + "src": "5034:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d652063616e6e6f7420626520656d707479", - "id": 1313, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5080:27:3", - "subdenomination": null, + "src": "5052:27:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_063aa5aa991fa0fd3a1737bc16a024d36bf324d0007364da5abd91e80a783f7c", "typeString": "literal_string \"Team name cannot be empty\"" @@ -3371,18 +3284,18 @@ "typeString": "literal_string \"Team name cannot be empty\"" } ], - "id": 1307, + "id": 1361, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5054:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5026:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1314, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -3390,39 +3303,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5054:54:3", + "src": "5026:54:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1315, + "id": 1369, "nodeType": "ExpressionStatement", - "src": "5054:54:3" + "src": "5026:54:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1321, + "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1317, + "id": 1371, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5126:11:3", + "referencedDeclaration": 1352, + "src": "5098:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3431,20 +3342,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1319, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5149:1:3", - "subdenomination": null, + "src": "5121:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3459,20 +3367,26 @@ "typeString": "int_const 0" } ], - "id": 1318, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5141:7:3", + "src": "5113:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5113:7:3", + "typeDescriptions": {} + } }, - "id": 1320, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": true, @@ -3480,30 +3394,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5141:10:3", + "src": "5113:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5126:25:3", + "src": "5098:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d20616464726573732063616e6e6f74206265207a65726f", - "id": 1322, + "id": 1377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5153:29:3", - "subdenomination": null, + "src": "5125:29:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9029ae4dfb5f969c9e791e54a26d156ec29cd11e61fee7d34de60d0469b5bc34", "typeString": "literal_string \"Team address cannot be zero\"" @@ -3522,18 +3435,18 @@ "typeString": "literal_string \"Team address cannot be zero\"" } ], - "id": 1316, + "id": 1370, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5118:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5090:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1323, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -3541,57 +3454,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5118:65:3", + "src": "5090:65:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 1379, "nodeType": "ExpressionStatement", - "src": "5118:65:3" + "src": "5090:65:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1333, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1326, + "id": 1381, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "5201:13:3", + "referencedDeclaration": 1138, + "src": "5173:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1328, + "id": 1383, "indexExpression": { - "argumentTypes": null, - "id": 1327, + "id": 1382, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5215:11:3", + "referencedDeclaration": 1352, + "src": "5187:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3602,21 +3510,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5201:26:3", + "src": "5173:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1329, + "id": 1384, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5201:38:3", + "referencedDeclaration": 1127, + "src": "5173:38:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3625,20 +3533,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1331, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5251:1:3", - "subdenomination": null, + "src": "5223:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3653,20 +3558,26 @@ "typeString": "int_const 0" } ], - "id": 1330, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5243:7:3", + "src": "5215:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5215:7:3", + "typeDescriptions": {} + } }, - "id": 1332, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": true, @@ -3674,30 +3585,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:10:3", + "src": "5215:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5201:52:3", + "src": "5173:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d20616c72656164792072656769737465726564", - "id": 1334, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5255:25:3", - "subdenomination": null, + "src": "5227:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_95903a00e4279433a32fe8146fc60f00d6de4a784e95361fc743effdbdd7b367", "typeString": "literal_string \"Team already registered\"" @@ -3716,18 +3626,18 @@ "typeString": "literal_string \"Team already registered\"" } ], - "id": 1325, + "id": 1380, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5193:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5165:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1335, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, @@ -3735,26 +3645,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5193:88:3", + "src": "5165:88:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1336, + "id": 1392, "nodeType": "ExpressionStatement", - "src": "5193:88:3" + "src": "5165:88:3" }, { - "assignments": [1338], + "assignments": [1394], "declarations": [ { "constant": false, - "id": 1338, + "id": 1394, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "5291:14:3", + "scope": 1439, + "src": "5263:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3762,152 +3674,140 @@ "typeString": "uint256" }, "typeName": { - "id": 1337, + "id": 1393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5291:7:3", + "src": "5263:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1341, + "id": 1397, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1339, + "id": 1395, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5308:5:3", + "referencedDeclaration": 1141, + "src": "5280:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1340, + "id": 1396, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:12:3", + "src": "5280:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5291:29:3" + "src": "5263:29:3" }, { - "assignments": [1343], + "assignments": [1399], "declarations": [ { "constant": false, - "id": 1343, + "id": 1399, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "5688:16:3", + "scope": 1439, + "src": "5660:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1342, + "id": 1398, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "5688:4:3", + "referencedDeclaration": 1134, + "src": "5660:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1352, + "id": 1408, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1345, + "id": 1401, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5712:6:3", + "referencedDeclaration": 1394, + "src": "5684:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1346, + "id": 1402, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5720:8:3", + "referencedDeclaration": 1350, + "src": "5692:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 1347, + "id": 1403, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5730:11:3", + "referencedDeclaration": 1352, + "src": "5702:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, - "id": 1348, + "id": 1404, "name": "proposalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1300, - "src": "5743:12:3", + "referencedDeclaration": 1354, + "src": "5715:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 1349, + "id": 1405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5757:4:3", - "subdenomination": null, + "src": "5729:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3915,17 +3815,15 @@ "value": "true" }, { - "argumentTypes": null, "hexValue": "30", - "id": 1350, + "id": 1406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5763:1:3", - "subdenomination": null, + "src": "5735:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -3960,18 +3858,18 @@ "typeString": "int_const 0" } ], - "id": 1344, + "id": 1400, "name": "Team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "5707:4:3", + "referencedDeclaration": 1134, + "src": "5679:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Team_$1085_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Team_$1134_storage_ptr_$", "typeString": "type(struct ContestTeamRegistry.Team storage pointer)" } }, - "id": 1351, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -3979,29 +3877,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5707:58:3", + "src": "5679:58:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5688:77:3" + "src": "5660:77:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1356, + "id": 1412, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "5786:4:3", + "referencedDeclaration": 1399, + "src": "5758:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } } @@ -4009,38 +3906,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } ], "expression": { - "argumentTypes": null, - "id": 1353, + "id": 1409, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5775:5:3", + "referencedDeclaration": 1141, + "src": "5747:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1355, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5775:10:3", + "src": "5747:10:3", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Team_$1085_storage_$returns$_t_uint256_$", - "typeString": "function (struct ContestTeamRegistry.Team storage ref) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Team_$1134_storage_$returns$__$", + "typeString": "function (struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1357, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": false, @@ -4048,48 +3943,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5775:16:3", + "src": "5747:16:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1358, + "id": 1414, "nodeType": "ExpressionStatement", - "src": "5775:16:3" + "src": "5747:16:3" }, { "expression": { - "argumentTypes": null, - "id": 1365, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1359, + "id": 1415, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "5801:13:3", + "referencedDeclaration": 1138, + "src": "5773:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1361, + "id": 1417, "indexExpression": { - "argumentTypes": null, - "id": 1360, + "id": 1416, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5815:11:3", + "referencedDeclaration": 1352, + "src": "5787:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4100,38 +3992,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5801:26:3", + "src": "5773:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1362, + "id": 1418, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5830:5:3", + "referencedDeclaration": 1141, + "src": "5802:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1364, + "id": 1420, "indexExpression": { - "argumentTypes": null, - "id": 1363, + "id": 1419, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5836:6:3", + "referencedDeclaration": 1394, + "src": "5808:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4142,38 +4031,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5830:13:3", + "src": "5802:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "src": "5801:42:3", + "src": "5773:42:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1366, + "id": 1422, "nodeType": "ExpressionStatement", - "src": "5801:42:3" + "src": "5773:42:3" }, { "expression": { - "argumentTypes": null, - "id": 1372, + "id": 1428, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1367, + "id": 1423, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "5853:18:3", + "referencedDeclaration": 1143, + "src": "5825:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4182,20 +4069,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1370, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5897:1:3", - "subdenomination": null, + "src": "5869:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -4211,33 +4095,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1368, + "id": 1424, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "5874:18:3", + "referencedDeclaration": 1143, + "src": "5846:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1369, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "5874:22:3", + "referencedDeclaration": 3647, + "src": "5846:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1371, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -4245,77 +4128,72 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5874:25:3", + "src": "5846:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5853:46:3", + "src": "5825:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1373, + "id": 1429, "nodeType": "ExpressionStatement", - "src": "5853:46:3" + "src": "5825:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1375, + "id": 1431, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5929:6:3", + "referencedDeclaration": 1394, + "src": "5901:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1376, + "id": 1432, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5937:8:3", + "referencedDeclaration": 1350, + "src": "5909:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 1377, + "id": 1433, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5947:11:3", + "referencedDeclaration": 1352, + "src": "5919:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 1378, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5960:4:3", - "subdenomination": null, + "src": "5932:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4342,18 +4220,18 @@ "typeString": "bool" } ], - "id": 1374, + "id": 1430, "name": "TeamRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, - "src": "5914:14:3", + "referencedDeclaration": 1158, + "src": "5886:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,bytes32,address,bool)" } }, - "id": 1379, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, @@ -4361,75 +4239,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5914:51:3", + "src": "5886:51:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1380, + "id": 1436, "nodeType": "EmitStatement", - "src": "5909:56:3" + "src": "5881:56:3" }, { "expression": { - "argumentTypes": null, - "id": 1381, + "id": 1437, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5982:6:3", + "referencedDeclaration": 1394, + "src": "5954:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1306, - "id": 1382, + "functionReturnParameters": 1360, + "id": 1438, "nodeType": "Return", - "src": "5975:13:3" + "src": "5947:13:3" } ] }, - "documentation": "@notice Registers a new team in the contest registry.\n@dev Registration process must be open.\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's proposal data; could be a hash for a file \non IPFS or for a github link; not required", - "id": 1384, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "4482:372:3", + "text": "@notice Registers a new team in the contest registry.\n@dev Registration process must be open.\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's proposal data; could be a hash for a file \non IPFS or for a github link; not required" + }, + "functionSelector": "7385712c", + "id": 1440, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1303, + "id": 1357, "modifierName": { - "argumentTypes": null, - "id": 1302, + "id": 1356, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4995:18:3", + "referencedDeclaration": 1195, + "src": "4967:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4995:18:3" + "src": "4967:18:3" } ], "name": "registerTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1301, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1296, + "id": 1350, + "mutability": "mutable", "name": "teamName", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4909:16:3", + "scope": 1440, + "src": "4881:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4437,25 +4320,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1295, + "id": 1349, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4909:7:3", + "src": "4881:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1298, + "id": 1352, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4927:19:3", + "scope": 1440, + "src": "4899:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4463,26 +4346,26 @@ "typeString": "address" }, "typeName": { - "id": 1297, + "id": 1351, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4927:7:3", + "src": "4899:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1300, + "id": 1354, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4948:20:3", + "scope": 1440, + "src": "4920:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4490,32 +4373,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 1299, + "id": 1353, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4948:7:3", + "src": "4920:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "4908:61:3" + "src": "4880:61:3" }, "returnParameters": { - "id": 1306, + "id": 1360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1305, + "id": 1359, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "5031:7:3", + "scope": 1440, + "src": "5003:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4523,90 +4406,85 @@ "typeString": "uint256" }, "typeName": { - "id": 1304, + "id": 1358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5031:7:3", + "src": "5003:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "5030:9:3" + "src": "5002:9:3" }, - "scope": 1698, - "src": "4887:1108:3", + "scope": 1772, + "src": "4859:1108:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1420, + "id": 1477, "nodeType": "Block", - "src": "6377:172:3", + "src": "6349:172:3", "statements": [ { - "assignments": [1400], + "assignments": [1457], "declarations": [ { "constant": false, - "id": 1400, + "id": 1457, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1420, - "src": "6387:17:3", + "scope": 1477, + "src": "6359:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1399, + "id": 1456, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "6387:4:3", + "referencedDeclaration": 1134, + "src": "6359:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1404, + "id": 1461, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1401, + "id": 1458, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "6407:5:3", + "referencedDeclaration": 1141, + "src": "6379:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1403, + "id": 1460, "indexExpression": { - "argumentTypes": null, - "id": 1402, + "id": 1459, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6413:6:3", + "referencedDeclaration": 1443, + "src": "6385:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4617,47 +4495,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6407:13:3", + "src": "6379:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6387:33:3" + "src": "6359:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1409, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1405, + "id": 1462, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6430:4:3", + "referencedDeclaration": 1457, + "src": "6402:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1407, + "id": 1464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "6430:17:3", + "referencedDeclaration": 1129, + "src": "6402:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4666,114 +4541,106 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1408, + "id": 1465, "name": "proposalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "6450:12:3", + "referencedDeclaration": 1445, + "src": "6422:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6430:32:3", + "src": "6402:32:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1410, + "id": 1467, "nodeType": "ExpressionStatement", - "src": "6430:32:3" + "src": "6402:32:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1412, + "id": 1469, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6497:4:3", + "referencedDeclaration": 1457, + "src": "6469:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1413, + "id": 1470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6497:7:3", + "referencedDeclaration": 1123, + "src": "6469:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1414, + "id": 1471, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6506:4:3", + "referencedDeclaration": 1457, + "src": "6478:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1415, + "id": 1472, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "6506:16:3", + "referencedDeclaration": 1127, + "src": "6478:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1416, + "id": 1473, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6524:4:3", + "referencedDeclaration": 1457, + "src": "6496:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1417, + "id": 1474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "6524:17:3", + "referencedDeclaration": 1129, + "src": "6496:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4795,18 +4662,18 @@ "typeString": "bytes32" } ], - "id": 1411, + "id": 1468, "name": "TeamProposalUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1124, - "src": "6477:19:3", + "referencedDeclaration": 1177, + "src": "6449:19:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$__$", "typeString": "function (uint256,address,bytes32)" } }, - "id": 1418, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -4814,122 +4681,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6477:65:3", + "src": "6449:65:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1419, + "id": 1476, "nodeType": "EmitStatement", - "src": "6472:70:3" + "src": "6444:70:3" } ] }, - "documentation": "@notice Updates the proposal data for a specific team.\n@param teamId team's unique identifier; required\n@param proposalData the updated data for the team's proposal", - "id": 1421, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "5973:200:3", + "text": "@notice Updates the proposal data for a specific team.\n@param teamId team's unique identifier; required\n@param proposalData the updated data for the team's proposal" + }, + "functionSelector": "eaf2f9cd", + "id": 1478, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1391, + "id": 1448, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6309:6:3", + "referencedDeclaration": 1443, + "src": "6281:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1392, + "id": 1449, "modifierName": { - "argumentTypes": null, - "id": 1390, + "id": 1447, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "6297:11:3", + "referencedDeclaration": 1237, + "src": "6269:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6297:19:3" + "src": "6269:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1394, + "id": 1451, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6340:6:3", + "referencedDeclaration": 1443, + "src": "6312:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1395, + "id": 1452, "modifierName": { - "argumentTypes": null, - "id": 1393, + "id": 1450, "name": "teamIsApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "6325:14:3", + "referencedDeclaration": 1250, + "src": "6297:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6325:22:3" + "src": "6297:22:3" }, { - "arguments": null, - "id": 1397, + "id": 1454, "modifierName": { - "argumentTypes": null, - "id": 1396, + "id": 1453, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "6356:16:3", + "referencedDeclaration": 1214, + "src": "6328:16:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6356:16:3" + "src": "6328:16:3" } ], "name": "updateProposalData", "nodeType": "FunctionDefinition", "parameters": { - "id": 1389, + "id": 1446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1386, + "id": 1443, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "6234:14:3", + "scope": 1478, + "src": "6206:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4937,25 +4806,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1385, + "id": 1442, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6234:7:3", + "src": "6206:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1388, + "id": 1445, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "6250:20:3", + "scope": 1478, + "src": "6222:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4963,57 +4832,55 @@ "typeString": "bytes32" }, "typeName": { - "id": 1387, + "id": 1444, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6250:7:3", + "src": "6222:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "6233:38:3" + "src": "6205:38:3" }, "returnParameters": { - "id": 1398, + "id": 1455, "nodeType": "ParameterList", "parameters": [], - "src": "6377:0:3" + "src": "6349:0:3" }, - "scope": 1698, - "src": "6206:343:3", + "scope": 1772, + "src": "6178:343:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1429, + "id": 1487, "nodeType": "Block", - "src": "6791:37:3", + "src": "6771:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1426, + "id": 1484, "name": "_closeRegistration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "6801:18:3", + "referencedDeclaration": 1583, + "src": "6781:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1427, + "id": 1485, "isConstant": false, "isLValue": false, "isPure": false, @@ -5021,87 +4888,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6801:20:3", + "src": "6781:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1428, + "id": 1486, "nodeType": "ExpressionStatement", - "src": "6801:20:3" + "src": "6781:20:3" } ] }, - "documentation": "@notice Closes the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1430, + "documentation": { + "id": 1479, + "nodeType": "StructuredDocumentation", + "src": "6527:174:3", + "text": "@notice Closes the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "7dc673bc", + "id": 1488, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1424, + "id": 1482, "modifierName": { - "argumentTypes": null, - "id": 1423, + "id": 1481, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "6772:18:3", + "referencedDeclaration": 1195, + "src": "6752:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6772:18:3" + "src": "6752:18:3" } ], "name": "closeRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1422, + "id": 1480, "nodeType": "ParameterList", "parameters": [], - "src": "6760:2:3" + "src": "6732:2:3" }, "returnParameters": { - "id": 1425, + "id": 1483, "nodeType": "ParameterList", "parameters": [], - "src": "6791:0:3" + "src": "6771:0:3" }, - "scope": 1698, - "src": "6734:94:3", + "scope": 1772, + "src": "6706:102:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1438, + "id": 1497, "nodeType": "Block", - "src": "7070:36:3", + "src": "7058:36:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1435, + "id": 1494, "name": "_openRegistration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "7080:17:3", + "referencedDeclaration": 1596, + "src": "7068:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1436, + "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, @@ -5109,114 +4980,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7080:19:3", + "src": "7068:19:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1437, + "id": 1496, "nodeType": "ExpressionStatement", - "src": "7080:19:3" + "src": "7068:19:3" } ] }, - "documentation": "@notice Opens the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1439, + "documentation": { + "id": 1489, + "nodeType": "StructuredDocumentation", + "src": "6814:173:3", + "text": "@notice Opens the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "d06e4ee7", + "id": 1498, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1433, + "id": 1492, "modifierName": { - "argumentTypes": null, - "id": 1432, + "id": 1491, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "7049:20:3", + "referencedDeclaration": 1205, + "src": "7037:20:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7049:20:3" + "src": "7037:20:3" } ], "name": "openRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1431, + "id": 1490, "nodeType": "ParameterList", "parameters": [], - "src": "7037:2:3" + "src": "7017:2:3" }, "returnParameters": { - "id": 1434, + "id": 1493, "nodeType": "ParameterList", "parameters": [], - "src": "7070:0:3" + "src": "7058:0:3" }, - "scope": 1698, - "src": "7012:94:3", + "scope": 1772, + "src": "6992:102:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1446, + "id": 1506, "nodeType": "Block", - "src": "7305:43:3", + "src": "7293:43:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1444, + "id": 1504, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "7322:19:3", + "referencedDeclaration": 1145, + "src": "7310:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1443, - "id": 1445, + "functionReturnParameters": 1503, + "id": 1505, "nodeType": "Return", - "src": "7315:26:3" + "src": "7303:26:3" } ] }, - "documentation": "@notice Gets the registration status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 1447, + "documentation": { + "id": 1499, + "nodeType": "StructuredDocumentation", + "src": "7100:126:3", + "text": "@notice Gets the registration status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "e35fb241", + "id": 1507, "implemented": true, "kind": "function", "modifiers": [], "name": "getRegistrationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1440, + "id": 1500, "nodeType": "ParameterList", "parameters": [], - "src": "7273:2:3" + "src": "7261:2:3" }, "returnParameters": { - "id": 1443, + "id": 1503, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1442, + "id": 1502, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "7299:4:3", + "scope": 1507, + "src": "7287:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5224,51 +5106,49 @@ "typeString": "bool" }, "typeName": { - "id": 1441, + "id": 1501, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7299:4:3", + "src": "7287:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "7298:6:3" + "src": "7286:6:3" }, - "scope": 1698, - "src": "7243:105:3", + "scope": 1772, + "src": "7231:105:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1455, + "id": 1516, "nodeType": "Block", - "src": "7593:35:3", + "src": "7589:35:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1452, + "id": 1513, "name": "_closeSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "7603:16:3", + "referencedDeclaration": 1608, + "src": "7599:16:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1453, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -5276,87 +5156,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7603:18:3", + "src": "7599:18:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1454, + "id": 1515, "nodeType": "ExpressionStatement", - "src": "7603:18:3" + "src": "7599:18:3" } ] }, - "documentation": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1456, + "documentation": { + "id": 1508, + "nodeType": "StructuredDocumentation", + "src": "7342:181:3", + "text": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ffc6ff1e", + "id": 1517, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1450, + "id": 1511, "modifierName": { - "argumentTypes": null, - "id": 1449, + "id": 1510, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "7576:16:3", + "referencedDeclaration": 1214, + "src": "7572:16:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7576:16:3" + "src": "7572:16:3" } ], "name": "closeSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1448, + "id": 1509, "nodeType": "ParameterList", "parameters": [], - "src": "7564:2:3" + "src": "7552:2:3" }, "returnParameters": { - "id": 1451, + "id": 1512, "nodeType": "ParameterList", "parameters": [], - "src": "7593:0:3" + "src": "7589:0:3" }, - "scope": 1698, - "src": "7540:88:3", + "scope": 1772, + "src": "7528:96:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1464, + "id": 1526, "nodeType": "Block", - "src": "7873:34:3", + "src": "7877:34:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1461, + "id": 1523, "name": "_openSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "7883:15:3", + "referencedDeclaration": 1621, + "src": "7887:15:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1462, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, @@ -5364,114 +5248,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7883:17:3", + "src": "7887:17:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1463, + "id": 1525, "nodeType": "ExpressionStatement", - "src": "7883:17:3" + "src": "7887:17:3" } ] }, - "documentation": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1465, + "documentation": { + "id": 1518, + "nodeType": "StructuredDocumentation", + "src": "7630:180:3", + "text": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "58e2f50e", + "id": 1527, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1459, + "id": 1521, "modifierName": { - "argumentTypes": null, - "id": 1458, + "id": 1520, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "7854:18:3", + "referencedDeclaration": 1224, + "src": "7858:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7854:18:3" + "src": "7858:18:3" } ], "name": "openSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1457, + "id": 1519, "nodeType": "ParameterList", "parameters": [], - "src": "7842:2:3" + "src": "7838:2:3" }, "returnParameters": { - "id": 1460, + "id": 1522, "nodeType": "ParameterList", "parameters": [], - "src": "7873:0:3" + "src": "7877:0:3" }, - "scope": 1698, - "src": "7819:88:3", + "scope": 1772, + "src": "7815:96:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1472, + "id": 1535, "nodeType": "Block", - "src": "8102:41:3", + "src": "8106:41:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1470, + "id": 1533, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "8119:17:3", + "referencedDeclaration": 1147, + "src": "8123:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1469, - "id": 1471, + "functionReturnParameters": 1532, + "id": 1534, "nodeType": "Return", - "src": "8112:24:3" + "src": "8116:24:3" } ] }, - "documentation": "@notice Gets the submission status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 1473, + "documentation": { + "id": 1528, + "nodeType": "StructuredDocumentation", + "src": "7917:124:3", + "text": "@notice Gets the submission status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "54e1db2b", + "id": 1536, "implemented": true, "kind": "function", "modifiers": [], "name": "getSubmissionStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1466, + "id": 1529, "nodeType": "ParameterList", "parameters": [], - "src": "8070:2:3" + "src": "8074:2:3" }, "returnParameters": { - "id": 1469, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1468, + "id": 1531, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1473, - "src": "8096:4:3", + "scope": 1536, + "src": "8100:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5479,45 +5374,42 @@ "typeString": "bool" }, "typeName": { - "id": 1467, + "id": 1530, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8096:4:3", + "src": "8100:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "8095:6:3" + "src": "8099:6:3" }, - "scope": 1698, - "src": "8042:101:3", + "scope": 1772, + "src": "8046:101:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1482, + "id": 1546, "nodeType": "Block", - "src": "8462:37:3", + "src": "8466:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1479, + "id": 1543, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1475, - "src": "8485:6:3", + "referencedDeclaration": 1539, + "src": "8489:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5531,18 +5423,18 @@ "typeString": "uint256" } ], - "id": 1478, + "id": 1542, "name": "_approveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1592, - "src": "8472:12:3", + "referencedDeclaration": 1662, + "src": "8476:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1480, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": false, @@ -5550,36 +5442,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8472:20:3", + "src": "8476:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1481, + "id": 1545, "nodeType": "ExpressionStatement", - "src": "8472:20:3" + "src": "8476:20:3" } ] }, - "documentation": "@notice (re)approves a team in participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be approved", - "id": 1483, + "documentation": { + "id": 1537, + "nodeType": "StructuredDocumentation", + "src": "8153:262:3", + "text": "@notice (re)approves a team in participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be approved" + }, + "functionSelector": "24ba9fab", + "id": 1547, "implemented": true, "kind": "function", "modifiers": [], "name": "approveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1476, + "id": 1540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1475, + "id": 1539, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1483, - "src": "8437:14:3", + "scope": 1547, + "src": "8441:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5587,51 +5487,48 @@ "typeString": "uint256" }, "typeName": { - "id": 1474, + "id": 1538, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8437:7:3", + "src": "8441:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "8436:16:3" + "src": "8440:16:3" }, "returnParameters": { - "id": 1477, + "id": 1541, "nodeType": "ParameterList", "parameters": [], - "src": "8462:0:3" + "src": "8466:0:3" }, - "scope": 1698, - "src": "8416:83:3", + "scope": 1772, + "src": "8420:83:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1493, + "id": 1558, "nodeType": "Block", - "src": "8850:39:3", + "src": "8854:39:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1490, + "id": 1555, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, - "src": "8874:7:3", + "referencedDeclaration": 1551, + "src": "8878:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -5645,18 +5542,18 @@ "typeString": "uint256[] calldata" } ], - "id": 1489, + "id": 1554, "name": "_reproveTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1618, - "src": "8860:13:3", + "referencedDeclaration": 1689, + "src": "8864:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint256[] memory)" } }, - "id": 1491, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, @@ -5664,36 +5561,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8860:22:3", + "src": "8864:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1492, + "id": 1557, "nodeType": "ExpressionStatement", - "src": "8860:22:3" + "src": "8864:22:3" } ] }, - "documentation": "@notice reprove teams from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamIds {uint256[]} an array containing the ids of the teams to be reproved", - "id": 1494, + "documentation": { + "id": 1548, + "nodeType": "StructuredDocumentation", + "src": "8509:281:3", + "text": "@notice reprove teams from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamIds {uint256[]} an array containing the ids of the teams to be reproved" + }, + "functionSelector": "288c4a46", + "id": 1559, "implemented": true, "kind": "function", "modifiers": [], "name": "reproveTeams", "nodeType": "FunctionDefinition", "parameters": { - "id": 1487, + "id": 1552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1486, + "id": 1551, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 1494, - "src": "8813:26:3", + "scope": 1559, + "src": "8817:26:3", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -5702,60 +5607,56 @@ }, "typeName": { "baseType": { - "id": 1484, + "id": 1549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8813:7:3", + "src": "8817:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1485, - "length": null, + "id": 1550, "nodeType": "ArrayTypeName", - "src": "8813:9:3", + "src": "8817:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" } ], - "src": "8812:28:3" + "src": "8816:28:3" }, "returnParameters": { - "id": 1488, + "id": 1553, "nodeType": "ParameterList", "parameters": [], - "src": "8850:0:3" + "src": "8854:0:3" }, - "scope": 1698, - "src": "8791:98:3", + "scope": 1772, + "src": "8795:98:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1503, + "id": 1569, "nodeType": "Block", - "src": "9206:37:3", + "src": "9210:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1500, + "id": 1566, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "9229:6:3", + "referencedDeclaration": 1562, + "src": "9233:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5769,18 +5670,18 @@ "typeString": "uint256" } ], - "id": 1499, + "id": 1565, "name": "_reproveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "9216:12:3", + "referencedDeclaration": 1730, + "src": "9220:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1501, + "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, @@ -5788,36 +5689,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9216:20:3", + "src": "9220:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1502, + "id": 1568, "nodeType": "ExpressionStatement", - "src": "9216:20:3" + "src": "9220:20:3" } ] }, - "documentation": "@notice reproves a team from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be reproved", - "id": 1504, + "documentation": { + "id": 1560, + "nodeType": "StructuredDocumentation", + "src": "8899:260:3", + "text": "@notice reproves a team from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be reproved" + }, + "functionSelector": "f540548b", + "id": 1570, "implemented": true, "kind": "function", "modifiers": [], "name": "reproveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1497, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1496, + "id": 1562, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "9181:14:3", + "scope": 1570, + "src": "9185:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5825,55 +5734,52 @@ "typeString": "uint256" }, "typeName": { - "id": 1495, + "id": 1561, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9181:7:3", + "src": "9185:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "9180:16:3" + "src": "9184:16:3" }, "returnParameters": { - "id": 1498, + "id": 1564, "nodeType": "ParameterList", "parameters": [], - "src": "9206:0:3" + "src": "9210:0:3" }, - "scope": 1698, - "src": "9160:83:3", + "scope": 1772, + "src": "9164:83:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1515, + "id": 1582, "nodeType": "Block", - "src": "9324:105:3", + "src": "9328:105:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1509, + "id": 1576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1507, + "id": 1574, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9334:19:3", + "referencedDeclaration": 1145, + "src": "9338:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5882,45 +5788,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1508, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9356:5:3", - "subdenomination": null, + "src": "9360:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9334:27:3", + "src": "9338:27:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1510, + "id": 1577, "nodeType": "ExpressionStatement", - "src": "9334:27:3" + "src": "9338:27:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1512, + "id": 1579, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9402:19:3", + "referencedDeclaration": 1145, + "src": "9406:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5934,18 +5836,18 @@ "typeString": "bool" } ], - "id": 1511, + "id": 1578, "name": "RegistrationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "9376:25:3", + "referencedDeclaration": 1163, + "src": "9380:25:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1513, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, @@ -5953,65 +5855,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9376:46:3", + "src": "9380:46:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1514, + "id": 1581, "nodeType": "EmitStatement", - "src": "9371:51:3" + "src": "9375:51:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1516, + "documentation": { + "id": 1571, + "nodeType": "StructuredDocumentation", + "src": "9253:31:3", + "text": "@dev internal implementation" + }, + "id": 1583, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1505, + "id": 1572, "nodeType": "ParameterList", "parameters": [], - "src": "9312:2:3" + "src": "9316:2:3" }, "returnParameters": { - "id": 1506, + "id": 1573, "nodeType": "ParameterList", "parameters": [], - "src": "9324:0:3" + "src": "9328:0:3" }, - "scope": 1698, - "src": "9285:144:3", + "scope": 1772, + "src": "9289:144:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1527, + "id": 1595, "nodeType": "Block", - "src": "9509:104:3", + "src": "9513:104:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1521, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1519, + "id": 1587, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9519:19:3", + "referencedDeclaration": 1145, + "src": "9523:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6020,45 +5926,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1520, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9541:4:3", - "subdenomination": null, + "src": "9545:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "9519:26:3", + "src": "9523:26:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1522, + "id": 1590, "nodeType": "ExpressionStatement", - "src": "9519:26:3" + "src": "9523:26:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1524, + "id": 1592, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9586:19:3", + "referencedDeclaration": 1145, + "src": "9590:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6072,18 +5974,18 @@ "typeString": "bool" } ], - "id": 1523, + "id": 1591, "name": "RegistrationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "9560:25:3", + "referencedDeclaration": 1163, + "src": "9564:25:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1525, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -6091,65 +5993,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9560:46:3", + "src": "9564:46:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1526, + "id": 1594, "nodeType": "EmitStatement", - "src": "9555:51:3" + "src": "9559:51:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1528, + "documentation": { + "id": 1584, + "nodeType": "StructuredDocumentation", + "src": "9439:31:3", + "text": "@dev internal implementation" + }, + "id": 1596, "implemented": true, "kind": "function", "modifiers": [], "name": "_openRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1517, + "id": 1585, "nodeType": "ParameterList", "parameters": [], - "src": "9497:2:3" + "src": "9501:2:3" }, "returnParameters": { - "id": 1518, + "id": 1586, "nodeType": "ParameterList", "parameters": [], - "src": "9509:0:3" + "src": "9513:0:3" }, - "scope": 1698, - "src": "9471:142:3", + "scope": 1772, + "src": "9475:142:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1539, + "id": 1607, "nodeType": "Block", - "src": "9656:99:3", + "src": "9660:99:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1533, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1531, + "id": 1599, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9666:17:3", + "referencedDeclaration": 1147, + "src": "9670:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6158,45 +6064,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1532, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9686:5:3", - "subdenomination": null, + "src": "9690:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9666:25:3", + "src": "9670:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1534, + "id": 1602, "nodeType": "ExpressionStatement", - "src": "9666:25:3" + "src": "9670:25:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1536, + "id": 1604, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9730:17:3", + "referencedDeclaration": 1147, + "src": "9734:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6210,18 +6112,18 @@ "typeString": "bool" } ], - "id": 1535, + "id": 1603, "name": "SubmissionStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "9706:23:3", + "referencedDeclaration": 1168, + "src": "9710:23:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1537, + "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, @@ -6229,65 +6131,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9706:42:3", + "src": "9710:42:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1538, + "id": 1606, "nodeType": "EmitStatement", - "src": "9701:47:3" + "src": "9705:47:3" } ] }, - "documentation": null, - "id": 1540, + "id": 1608, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1529, + "id": 1597, "nodeType": "ParameterList", "parameters": [], - "src": "9644:2:3" + "src": "9648:2:3" }, "returnParameters": { - "id": 1530, + "id": 1598, "nodeType": "ParameterList", "parameters": [], - "src": "9656:0:3" + "src": "9660:0:3" }, - "scope": 1698, - "src": "9619:136:3", + "scope": 1772, + "src": "9623:136:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1551, + "id": 1620, "nodeType": "Block", - "src": "9833:98:3", + "src": "9837:98:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1545, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1543, + "id": 1612, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9843:17:3", + "referencedDeclaration": 1147, + "src": "9847:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6296,45 +6196,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1544, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9863:4:3", - "subdenomination": null, + "src": "9867:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "9843:24:3", + "src": "9847:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1546, + "id": 1615, "nodeType": "ExpressionStatement", - "src": "9843:24:3" + "src": "9847:24:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1548, + "id": 1617, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9906:17:3", + "referencedDeclaration": 1147, + "src": "9910:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6348,18 +6244,18 @@ "typeString": "bool" } ], - "id": 1547, + "id": 1616, "name": "SubmissionStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "9882:23:3", + "referencedDeclaration": 1168, + "src": "9886:23:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1549, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, @@ -6367,106 +6263,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9882:42:3", + "src": "9886:42:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1550, + "id": 1619, "nodeType": "EmitStatement", - "src": "9877:47:3" + "src": "9881:47:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1552, + "documentation": { + "id": 1609, + "nodeType": "StructuredDocumentation", + "src": "9765:31:3", + "text": "@dev internal implementation" + }, + "id": 1621, "implemented": true, "kind": "function", "modifiers": [], "name": "_openSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1541, + "id": 1610, "nodeType": "ParameterList", "parameters": [], - "src": "9821:2:3" + "src": "9825:2:3" }, "returnParameters": { - "id": 1542, + "id": 1611, "nodeType": "ParameterList", "parameters": [], - "src": "9833:0:3" + "src": "9837:0:3" }, - "scope": 1698, - "src": "9797:134:3", + "scope": 1772, + "src": "9801:134:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1591, + "id": 1661, "nodeType": "Block", - "src": "10063:210:3", + "src": "10067:210:3", "statements": [ { - "assignments": [1564], + "assignments": [1634], "declarations": [ { "constant": false, - "id": 1564, + "id": 1634, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "10073:17:3", + "scope": 1661, + "src": "10077:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1563, + "id": 1633, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "10073:4:3", + "referencedDeclaration": 1134, + "src": "10077:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1568, + "id": 1638, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1565, + "id": 1635, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10093:5:3", + "referencedDeclaration": 1141, + "src": "10097:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1567, + "id": 1637, "indexExpression": { - "argumentTypes": null, - "id": 1566, + "id": 1636, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10099:6:3", + "referencedDeclaration": 1624, + "src": "10103:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6477,47 +6375,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10093:13:3", + "src": "10097:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "10073:33:3" + "src": "10077:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1573, + "id": 1643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1569, + "id": 1639, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10116:4:3", + "referencedDeclaration": 1634, + "src": "10120:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1571, + "id": 1641, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10116:13:3", + "referencedDeclaration": 1131, + "src": "10120:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6526,49 +6421,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1572, + "id": 1642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10132:4:3", - "subdenomination": null, + "src": "10136:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "10116:20:3", + "src": "10120:20:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1574, + "id": 1644, "nodeType": "ExpressionStatement", - "src": "10116:20:3" + "src": "10120:20:3" }, { "expression": { - "argumentTypes": null, - "id": 1580, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1575, + "id": 1645, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10146:18:3", + "referencedDeclaration": 1143, + "src": "10150:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6577,20 +6468,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1578, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10190:1:3", - "subdenomination": null, + "src": "10194:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -6606,33 +6494,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1576, + "id": 1646, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10167:18:3", + "referencedDeclaration": 1143, + "src": "10171:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1577, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "10167:22:3", + "referencedDeclaration": 3647, + "src": "10171:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1579, + "id": 1649, "isConstant": false, "isLValue": false, "isPure": false, @@ -6640,108 +6527,102 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10167:25:3", + "src": "10171:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10146:46:3", + "src": "10150:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1581, + "id": 1651, "nodeType": "ExpressionStatement", - "src": "10146:46:3" + "src": "10150:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1583, + "id": 1653, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10225:4:3", + "referencedDeclaration": 1634, + "src": "10229:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1584, + "id": 1654, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "10225:7:3", + "referencedDeclaration": 1123, + "src": "10229:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1585, + "id": 1655, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10234:4:3", + "referencedDeclaration": 1634, + "src": "10238:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1586, + "id": 1656, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "10234:16:3", + "referencedDeclaration": 1127, + "src": "10238:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1587, + "id": 1657, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10252:4:3", + "referencedDeclaration": 1634, + "src": "10256:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1588, + "id": 1658, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10252:13:3", + "referencedDeclaration": 1131, + "src": "10256:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6763,18 +6644,18 @@ "typeString": "bool" } ], - "id": 1582, + "id": 1652, "name": "TeamStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "10207:17:3", + "referencedDeclaration": 1186, + "src": "10211:17:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,address,bool)" } }, - "id": 1589, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -6782,103 +6663,106 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10207:59:3", + "src": "10211:59:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1590, + "id": 1660, "nodeType": "EmitStatement", - "src": "10202:64:3" + "src": "10206:64:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1592, + "documentation": { + "id": 1622, + "nodeType": "StructuredDocumentation", + "src": "9941:31:3", + "text": "@dev internal implementation" + }, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1557, + "id": 1627, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10032:6:3", + "referencedDeclaration": 1624, + "src": "10036:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1558, + "id": 1628, "modifierName": { - "argumentTypes": null, - "id": 1556, + "id": 1626, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "10020:11:3", + "referencedDeclaration": 1237, + "src": "10024:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10020:19:3" + "src": "10024:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1560, + "id": 1630, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10055:6:3", + "referencedDeclaration": 1624, + "src": "10059:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1561, + "id": 1631, "modifierName": { - "argumentTypes": null, - "id": 1559, + "id": 1629, "name": "teamIsReproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "10040:14:3", + "referencedDeclaration": 1264, + "src": "10044:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10040:22:3" + "src": "10044:22:3" } ], "name": "_approveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1555, + "id": 1625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1554, + "id": 1624, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "9995:14:3", + "scope": 1662, + "src": "9999:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6886,73 +6770,68 @@ "typeString": "uint256" }, "typeName": { - "id": 1553, + "id": 1623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9995:7:3", + "src": "9999:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "9994:16:3" + "src": "9998:16:3" }, "returnParameters": { - "id": 1562, + "id": 1632, "nodeType": "ParameterList", "parameters": [], - "src": "10063:0:3" + "src": "10067:0:3" }, - "scope": 1698, - "src": "9973:300:3", + "scope": 1772, + "src": "9977:300:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1617, + "id": 1688, "nodeType": "Block", - "src": "10373:110:3", + "src": "10377:110:3", "statements": [ { "body": { - "id": 1615, + "id": 1686, "nodeType": "Block", - "src": "10428:49:3", + "src": "10432:49:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1610, + "id": 1681, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "10455:7:3", + "referencedDeclaration": 1666, + "src": "10459:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1612, + "id": 1683, "indexExpression": { - "argumentTypes": null, - "id": 1611, + "id": 1682, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10463:1:3", + "referencedDeclaration": 1670, + "src": "10467:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6963,7 +6842,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10455:10:3", + "src": "10459:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6977,18 +6856,18 @@ "typeString": "uint256" } ], - "id": 1609, + "id": 1680, "name": "_reproveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "10442:12:3", + "referencedDeclaration": 1730, + "src": "10446:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1613, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": false, @@ -6996,37 +6875,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10442:24:3", + "src": "10446:24:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1614, + "id": 1685, "nodeType": "ExpressionStatement", - "src": "10442:24:3" + "src": "10446:24:3" } ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1605, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1602, + "id": 1673, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10403:1:3", + "referencedDeclaration": 1670, + "src": "10407:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7035,51 +6913,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1603, + "id": 1674, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "10407:7:3", + "referencedDeclaration": 1666, + "src": "10411:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1604, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10407:14:3", + "src": "10411:14:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10403:18:3", + "src": "10407:18:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1616, + "id": 1687, "initializationExpression": { - "assignments": [1599], + "assignments": [1670], "declarations": [ { "constant": false, - "id": 1599, + "id": 1670, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 1616, - "src": "10388:9:3", + "scope": 1687, + "src": "10392:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7087,32 +6963,29 @@ "typeString": "uint256" }, "typeName": { - "id": 1598, + "id": 1669, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10388:7:3", + "src": "10392:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1601, + "id": 1672, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 1600, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10400:1:3", - "subdenomination": null, + "src": "10404:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7120,12 +6993,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10388:13:3" + "src": "10392:13:3" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 1607, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": false, @@ -7133,15 +7005,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10423:3:3", + "src": "10427:3:3", "subExpression": { - "argumentTypes": null, - "id": 1606, + "id": 1677, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10423:1:3", + "referencedDeclaration": 1670, + "src": "10427:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7152,33 +7023,39 @@ "typeString": "uint256" } }, - "id": 1608, + "id": 1679, "nodeType": "ExpressionStatement", - "src": "10423:3:3" + "src": "10427:3:3" }, "nodeType": "ForStatement", - "src": "10383:94:3" + "src": "10387:94:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1618, + "documentation": { + "id": 1663, + "nodeType": "StructuredDocumentation", + "src": "10283:31:3", + "text": "@dev internal implementation" + }, + "id": 1689, "implemented": true, "kind": "function", "modifiers": [], "name": "_reproveTeams", "nodeType": "FunctionDefinition", "parameters": { - "id": 1596, + "id": 1667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1595, + "id": 1666, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "10338:24:3", + "scope": 1689, + "src": "10342:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -7187,105 +7064,99 @@ }, "typeName": { "baseType": { - "id": 1593, + "id": 1664, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10338:7:3", + "src": "10342:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1594, - "length": null, + "id": 1665, "nodeType": "ArrayTypeName", - "src": "10338:9:3", + "src": "10342:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" } ], - "src": "10337:26:3" + "src": "10341:26:3" }, "returnParameters": { - "id": 1597, + "id": 1668, "nodeType": "ParameterList", "parameters": [], - "src": "10373:0:3" + "src": "10377:0:3" }, - "scope": 1698, - "src": "10315:168:3", + "scope": 1772, + "src": "10319:168:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1657, + "id": 1729, "nodeType": "Block", - "src": "10615:211:3", + "src": "10619:211:3", "statements": [ { - "assignments": [1630], + "assignments": [1702], "declarations": [ { "constant": false, - "id": 1630, + "id": 1702, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1657, - "src": "10625:17:3", + "scope": 1729, + "src": "10629:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1629, + "id": 1701, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "10625:4:3", + "referencedDeclaration": 1134, + "src": "10629:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1634, + "id": 1706, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1631, + "id": 1703, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10645:5:3", + "referencedDeclaration": 1141, + "src": "10649:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1633, + "id": 1705, "indexExpression": { - "argumentTypes": null, - "id": 1632, + "id": 1704, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10651:6:3", + "referencedDeclaration": 1692, + "src": "10655:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7296,47 +7167,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10645:13:3", + "src": "10649:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "10625:33:3" + "src": "10629:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1639, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1635, + "id": 1707, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10668:4:3", + "referencedDeclaration": 1702, + "src": "10672:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1637, + "id": 1709, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10668:13:3", + "referencedDeclaration": 1131, + "src": "10672:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7345,49 +7213,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1638, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10684:5:3", - "subdenomination": null, + "src": "10688:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "10668:21:3", + "src": "10672:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1640, + "id": 1712, "nodeType": "ExpressionStatement", - "src": "10668:21:3" + "src": "10672:21:3" }, { "expression": { - "argumentTypes": null, - "id": 1646, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1641, + "id": 1713, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10699:18:3", + "referencedDeclaration": 1143, + "src": "10703:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7396,20 +7260,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1644, + "id": 1716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10743:1:3", - "subdenomination": null, + "src": "10747:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -7425,33 +7286,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1642, + "id": 1714, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10720:18:3", + "referencedDeclaration": 1143, + "src": "10724:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1643, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "10720:22:3", + "referencedDeclaration": 3664, + "src": "10724:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1645, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": false, @@ -7459,108 +7319,102 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10720:25:3", + "src": "10724:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10699:46:3", + "src": "10703:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1647, + "id": 1719, "nodeType": "ExpressionStatement", - "src": "10699:46:3" + "src": "10703:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1649, + "id": 1721, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10778:4:3", + "referencedDeclaration": 1702, + "src": "10782:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1650, + "id": 1722, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "10778:7:3", + "referencedDeclaration": 1123, + "src": "10782:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1651, + "id": 1723, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10787:4:3", + "referencedDeclaration": 1702, + "src": "10791:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1652, + "id": 1724, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "10787:16:3", + "referencedDeclaration": 1127, + "src": "10791:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1653, + "id": 1725, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10805:4:3", + "referencedDeclaration": 1702, + "src": "10809:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1654, + "id": 1726, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10805:13:3", + "referencedDeclaration": 1131, + "src": "10809:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7582,18 +7436,18 @@ "typeString": "bool" } ], - "id": 1648, + "id": 1720, "name": "TeamStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "10760:17:3", + "referencedDeclaration": 1186, + "src": "10764:17:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,address,bool)" } }, - "id": 1655, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -7601,103 +7455,106 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10760:59:3", + "src": "10764:59:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1656, + "id": 1728, "nodeType": "EmitStatement", - "src": "10755:64:3" + "src": "10759:64:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1658, + "documentation": { + "id": 1690, + "nodeType": "StructuredDocumentation", + "src": "10493:31:3", + "text": "@dev internal implementation" + }, + "id": 1730, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1623, + "id": 1695, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10584:6:3", + "referencedDeclaration": 1692, + "src": "10588:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1624, + "id": 1696, "modifierName": { - "argumentTypes": null, - "id": 1622, + "id": 1694, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "10572:11:3", + "referencedDeclaration": 1237, + "src": "10576:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10572:19:3" + "src": "10576:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1626, + "id": 1698, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10607:6:3", + "referencedDeclaration": 1692, + "src": "10611:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1627, + "id": 1699, "modifierName": { - "argumentTypes": null, - "id": 1625, + "id": 1697, "name": "teamIsApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "10592:14:3", + "referencedDeclaration": 1250, + "src": "10596:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10592:22:3" + "src": "10596:22:3" } ], "name": "_reproveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1621, + "id": 1693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1620, + "id": 1692, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "10547:14:3", + "scope": 1730, + "src": "10551:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7705,62 +7562,58 @@ "typeString": "uint256" }, "typeName": { - "id": 1619, + "id": 1691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10547:7:3", + "src": "10551:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "10546:16:3" + "src": "10550:16:3" }, "returnParameters": { - "id": 1628, + "id": 1700, "nodeType": "ParameterList", "parameters": [], - "src": "10615:0:3" + "src": "10619:0:3" }, - "scope": 1698, - "src": "10525:301:3", + "scope": 1772, + "src": "10529:301:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1671, + "id": 1744, "nodeType": "Block", - "src": "10936:47:3", + "src": "10940:47:3", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1668, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1665, + "id": 1738, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "10954:6:3", + "referencedDeclaration": 1733, + "src": "10958:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7769,79 +7622,82 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1666, + "id": 1739, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10963:5:3", + "referencedDeclaration": 1141, + "src": "10967:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1667, + "id": 1740, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10963:12:3", + "src": "10967:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10954:21:3", + "src": "10958:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1669, + "id": 1742, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10953:23:3", + "src": "10957:23:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1664, - "id": 1670, + "functionReturnParameters": 1737, + "id": 1743, "nodeType": "Return", - "src": "10946:30:3" + "src": "10950:30:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1672, + "documentation": { + "id": 1731, + "nodeType": "StructuredDocumentation", + "src": "10836:31:3", + "text": "@dev internal implementation" + }, + "id": 1745, "implemented": true, "kind": "function", "modifiers": [], "name": "isValidTeamId", "nodeType": "FunctionDefinition", "parameters": { - "id": 1661, + "id": 1734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1660, + "id": 1733, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "10891:14:3", + "scope": 1745, + "src": "10895:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7849,32 +7705,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1659, + "id": 1732, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10891:7:3", + "src": "10895:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "10890:16:3" + "src": "10894:16:3" }, "returnParameters": { - "id": 1664, + "id": 1737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1663, + "id": 1736, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "10930:4:3", + "scope": 1745, + "src": "10934:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7882,37 +7738,35 @@ "typeString": "bool" }, "typeName": { - "id": 1662, + "id": 1735, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10930:4:3", + "src": "10934:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "10929:6:3" + "src": "10933:6:3" }, - "scope": 1698, - "src": "10868:115:3", + "scope": 1772, + "src": "10872:115:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1696, + "id": 1770, "nodeType": "Block", - "src": "11094:154:3", + "src": "11098:154:3", "statements": [ { "condition": { - "argumentTypes": null, - "id": 1682, + "id": 1756, "isConstant": false, "isLValue": false, "isPure": false, @@ -7920,18 +7774,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11108:22:3", + "src": "11112:22:3", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1680, + "id": 1754, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "11123:6:3", + "referencedDeclaration": 1748, + "src": "11127:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7945,18 +7797,18 @@ "typeString": "uint256" } ], - "id": 1679, + "id": 1753, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "11109:13:3", + "referencedDeclaration": 1745, + "src": "11113:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1681, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": false, @@ -7964,7 +7816,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11109:21:3", + "src": "11113:21:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7975,99 +7828,92 @@ "typeString": "bool" } }, - "falseBody": null, - "id": 1686, + "id": 1760, "nodeType": "IfStatement", - "src": "11104:65:3", + "src": "11108:65:3", "trueBody": { - "id": 1685, + "id": 1759, "nodeType": "Block", - "src": "11132:37:3", + "src": "11136:37:3", "statements": [ { "expression": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1683, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11153:5:3", - "subdenomination": null, + "src": "11157:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 1678, - "id": 1684, + "functionReturnParameters": 1752, + "id": 1758, "nodeType": "Return", - "src": "11146:12:3" + "src": "11150:12:3" } ] } }, { - "assignments": [1688], + "assignments": [1762], "declarations": [ { "constant": false, - "id": 1688, + "id": 1762, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1696, - "src": "11179:16:3", + "scope": 1770, + "src": "11183:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1687, + "id": 1761, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "11179:4:3", + "referencedDeclaration": 1134, + "src": "11183:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1692, + "id": 1766, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1689, + "id": 1763, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "11198:5:3", + "referencedDeclaration": 1141, + "src": "11202:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1691, + "id": 1765, "indexExpression": { - "argumentTypes": null, - "id": 1690, + "id": 1764, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "11204:6:3", + "referencedDeclaration": 1748, + "src": "11208:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8078,70 +7924,74 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11198:13:3", + "src": "11202:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11179:32:3" + "src": "11183:32:3" }, { "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1693, + "id": 1767, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1688, - "src": "11228:4:3", + "referencedDeclaration": 1762, + "src": "11232:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1694, + "id": 1768, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "11228:13:3", + "referencedDeclaration": 1131, + "src": "11232:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1678, - "id": 1695, + "functionReturnParameters": 1752, + "id": 1769, "nodeType": "Return", - "src": "11221:20:3" + "src": "11225:20:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1697, + "documentation": { + "id": 1746, + "nodeType": "StructuredDocumentation", + "src": "10993:31:3", + "text": "@dev internal implementation" + }, + "id": 1771, "implemented": true, "kind": "function", "modifiers": [], "name": "isTeamApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 1675, + "id": 1749, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1674, + "id": 1748, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1697, - "src": "11049:14:3", + "scope": 1771, + "src": "11053:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8149,32 +7999,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1673, + "id": 1747, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11049:7:3", + "src": "11053:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "11048:16:3" + "src": "11052:16:3" }, "returnParameters": { - "id": 1678, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1677, + "id": 1751, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1697, - "src": "11088:4:3", + "scope": 1771, + "src": "11092:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8182,91 +8032,97 @@ "typeString": "bool" }, "typeName": { - "id": 1676, + "id": 1750, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11088:4:3", + "src": "11092:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "11087:6:3" + "src": "11091:6:3" }, - "scope": 1698, - "src": "11025:223:3", + "scope": 1772, + "src": "11029:223:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 1699, - "src": "631:10619:3" + "scope": 1773, + "src": "671:10583:3" } ], - "src": "0:11251:3" + "src": "40:11215:3" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol", "exportedSymbols": { - "ContestTeamRegistry": [1698] + "ContestTeamRegistry": [1772], + "SafeMath": [3814] }, - "id": 1699, + "id": 1773, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 1068, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 1116, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "40:31:3" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1069, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 1117, "nodeType": "ImportDirective", - "scope": 1699, - "sourceUnit": 4216, - "src": "25:59:3", + "scope": 1773, + "sourceUnit": 3815, + "src": "73:51:3", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Controls the registration of teams and the subsequent proposal submission process\nof the teams participating in a contest.\n@dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\nFuture improvements:\nTODO: Add struct to identify team members.\nTODO: Possibility to request a msg.value for members to signup for contest.\nTODO: Ability to refund members once they show up to contest.\nTODO: Add mapping for team members.", + "documentation": { + "id": 1118, + "nodeType": "StructuredDocumentation", + "src": "126:544:3", + "text": "@notice Controls the registration of teams and the subsequent proposal submission process\nof the teams participating in a contest.\n@dev TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct.\nFuture improvements:\nTODO: Add struct to identify team members.\nTODO: Possibility to request a msg.value for members to signup for contest.\nTODO: Ability to refund members once they show up to contest.\nTODO: Add mapping for team members." + }, "fullyImplemented": true, - "id": 1698, - "linearizedBaseContracts": [1698], + "id": 1772, + "linearizedBaseContracts": [1772], "name": "ContestTeamRegistry", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1072, + "id": 1121, "libraryName": { - "contractScope": null, - "id": 1070, + "id": 1119, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "672:8:3", + "referencedDeclaration": 3814, + "src": "721:8:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "666:27:3", + "src": "715:27:3", "typeName": { - "id": 1071, + "id": 1120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "685:7:3", + "src": "734:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8275,15 +8131,16 @@ }, { "canonicalName": "ContestTeamRegistry.Team", - "id": 1085, + "id": 1134, "members": [ { "constant": false, - "id": 1074, + "id": 1123, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "783:10:3", + "scope": 1134, + "src": "832:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8291,25 +8148,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1073, + "id": 1122, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "783:7:3", + "src": "832:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1076, + "id": 1125, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "803:12:3", + "scope": 1134, + "src": "852:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8317,25 +8174,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1075, + "id": 1124, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "803:7:3", + "src": "852:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1078, + "id": 1127, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "825:19:3", + "scope": 1134, + "src": "874:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8343,26 +8200,26 @@ "typeString": "address" }, "typeName": { - "id": 1077, + "id": 1126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "825:7:3", + "src": "874:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1080, + "id": 1129, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "854:20:3", + "scope": 1134, + "src": "903:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8370,25 +8227,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1079, + "id": 1128, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "854:7:3", + "src": "903:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1082, + "id": 1131, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "884:13:3", + "scope": 1134, + "src": "933:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8396,25 +8253,25 @@ "typeString": "bool" }, "typeName": { - "id": 1081, + "id": 1130, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "884:4:3", + "src": "933:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1084, + "id": 1133, + "mutability": "mutable", "name": "grade", "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "907:13:3", + "scope": 1134, + "src": "956:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8422,117 +8279,115 @@ "typeString": "uint256" }, "typeName": { - "id": 1083, + "id": 1132, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:3", + "src": "956:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], "name": "Team", "nodeType": "StructDefinition", - "scope": 1698, - "src": "761:210:3", + "scope": 1772, + "src": "810:210:3", "visibility": "public" }, { "constant": false, - "id": 1089, + "id": 1138, + "mutability": "mutable", "name": "teamByAddress", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1050:47:3", + "scope": 1772, + "src": "1099:47:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team)" }, "typeName": { - "id": 1088, + "id": 1137, "keyType": { - "id": 1086, + "id": 1135, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1058:7:3", + "src": "1107:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1050:24:3", + "src": "1099:24:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team)" }, "valueType": { - "contractScope": null, - "id": 1087, + "id": 1136, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "1069:4:3", + "referencedDeclaration": 1134, + "src": "1118:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1092, + "functionSelector": "3ed2b77a", + "id": 1141, + "mutability": "mutable", "name": "teams", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1103:19:3", + "scope": 1772, + "src": "1152:19:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team[]" }, "typeName": { "baseType": { - "contractScope": null, - "id": 1090, + "id": 1139, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "1103:4:3", + "referencedDeclaration": 1134, + "src": "1152:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "id": 1091, - "length": null, + "id": 1140, "nodeType": "ArrayTypeName", - "src": "1103:6:3", + "src": "1152:6:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage_ptr", "typeString": "struct ContestTeamRegistry.Team[]" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1094, + "id": 1143, + "mutability": "mutable", "name": "approvedTeamsCount", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1128:35:3", + "scope": 1772, + "src": "1177:35:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8540,25 +8395,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1093, + "id": 1142, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1128:7:3", + "src": "1177:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1096, + "id": 1145, + "mutability": "mutable", "name": "registrationEnabled", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1169:33:3", + "scope": 1772, + "src": "1218:33:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8566,25 +8421,25 @@ "typeString": "bool" }, "typeName": { - "id": 1095, + "id": 1144, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1169:4:3", + "src": "1218:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1098, + "id": 1147, + "mutability": "mutable", "name": "submissionEnabled", "nodeType": "VariableDeclaration", - "scope": 1698, - "src": "1208:31:3", + "scope": 1772, + "src": "1257:31:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -8592,36 +8447,41 @@ "typeString": "bool" }, "typeName": { - "id": 1097, + "id": 1146, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1208:4:3", + "src": "1257:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when a new team is registered", - "id": 1108, + "documentation": { + "id": 1148, + "nodeType": "StructuredDocumentation", + "src": "1295:46:3", + "text": "@dev emitted when a new team is registered" + }, + "id": 1158, "name": "TeamRegistered", "nodeType": "EventDefinition", "parameters": { - "id": 1107, + "id": 1157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1100, + "id": 1150, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1318:22:3", + "scope": 1158, + "src": "1367:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8629,26 +8489,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1099, + "id": 1149, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1318:7:3", + "src": "1367:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1102, + "id": 1152, "indexed": false, + "mutability": "mutable", "name": "teamName", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1342:16:3", + "scope": 1158, + "src": "1391:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8656,26 +8516,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 1101, + "id": 1151, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1342:7:3", + "src": "1391:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1104, + "id": 1154, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1360:27:3", + "scope": 1158, + "src": "1409:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8683,27 +8543,27 @@ "typeString": "address" }, "typeName": { - "id": 1103, + "id": 1153, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1360:7:3", + "src": "1409:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1106, + "id": 1156, "indexed": false, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1108, - "src": "1389:13:3", + "scope": 1158, + "src": "1438:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8711,41 +8571,46 @@ "typeString": "bool" }, "typeName": { - "id": 1105, + "id": 1155, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1389:4:3", + "src": "1438:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1317:86:3" + "src": "1366:86:3" }, - "src": "1297:107:3" + "src": "1346:107:3" }, { "anonymous": false, - "documentation": "@dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}", - "id": 1112, + "documentation": { + "id": 1159, + "nodeType": "StructuredDocumentation", + "src": "1458:111:3", + "text": "@dev emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}" + }, + "id": 1163, "name": "RegistrationStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1111, + "id": 1162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1110, + "id": 1161, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 1112, - "src": "1557:12:3", + "scope": 1163, + "src": "1606:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8753,41 +8618,46 @@ "typeString": "bool" }, "typeName": { - "id": 1109, + "id": 1160, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1557:4:3", + "src": "1606:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1556:14:3" + "src": "1605:14:3" }, - "src": "1525:46:3" + "src": "1574:46:3" }, { "anonymous": false, - "documentation": "@dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}", - "id": 1116, + "documentation": { + "id": 1164, + "nodeType": "StructuredDocumentation", + "src": "1625:105:3", + "text": "@dev emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}" + }, + "id": 1168, "name": "SubmissionStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1115, + "id": 1167, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1114, + "id": 1166, "indexed": false, + "mutability": "mutable", "name": "enabled", "nodeType": "VariableDeclaration", - "scope": 1116, - "src": "1716:12:3", + "scope": 1168, + "src": "1765:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8795,41 +8665,46 @@ "typeString": "bool" }, "typeName": { - "id": 1113, + "id": 1165, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1716:4:3", + "src": "1765:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1715:14:3" + "src": "1764:14:3" }, - "src": "1686:44:3" + "src": "1735:44:3" }, { "anonymous": false, - "documentation": "@dev emitted when a team's proposal data is updated. See {updateProposalData}", - "id": 1124, + "documentation": { + "id": 1169, + "nodeType": "StructuredDocumentation", + "src": "1784:81:3", + "text": "@dev emitted when a team's proposal data is updated. See {updateProposalData}" + }, + "id": 1177, "name": "TeamProposalUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1123, + "id": 1176, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1118, + "id": 1171, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1847:22:3", + "scope": 1177, + "src": "1896:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8837,26 +8712,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1117, + "id": 1170, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1847:7:3", + "src": "1896:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1120, + "id": 1173, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1871:27:3", + "scope": 1177, + "src": "1920:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8864,27 +8739,27 @@ "typeString": "address" }, "typeName": { - "id": 1119, + "id": 1172, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1871:7:3", + "src": "1920:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1122, + "id": 1175, "indexed": false, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1124, - "src": "1900:20:3", + "scope": 1177, + "src": "1949:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8892,41 +8767,46 @@ "typeString": "bytes32" }, "typeName": { - "id": 1121, + "id": 1174, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1900:7:3", + "src": "1949:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1846:75:3" + "src": "1895:75:3" }, - "src": "1821:101:3" + "src": "1870:101:3" }, { "anonymous": false, - "documentation": "@dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}", - "id": 1132, + "documentation": { + "id": 1178, + "nodeType": "StructuredDocumentation", + "src": "1976:85:3", + "text": "@dev emitted when a team's status is updated. See {approveTeam} and {reproveTeam}" + }, + "id": 1186, "name": "TeamStatusUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 1131, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1126, + "id": 1180, "indexed": true, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2041:22:3", + "scope": 1186, + "src": "2090:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8934,26 +8814,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1125, + "id": 1179, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2041:7:3", + "src": "2090:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1128, + "id": 1182, "indexed": true, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2065:27:3", + "scope": 1186, + "src": "2114:27:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8961,27 +8841,27 @@ "typeString": "address" }, "typeName": { - "id": 1127, + "id": 1181, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2065:7:3", + "src": "2114:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1130, + "id": 1184, "indexed": false, + "mutability": "mutable", "name": "approved", "nodeType": "VariableDeclaration", - "scope": 1132, - "src": "2094:13:3", + "scope": 1186, + "src": "2143:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8989,58 +8869,53 @@ "typeString": "bool" }, "typeName": { - "id": 1129, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2094:4:3", + "src": "2143:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2040:68:3" + "src": "2089:68:3" }, - "src": "2017:92:3" + "src": "2066:92:3" }, { "body": { - "id": 1140, + "id": 1194, "nodeType": "Block", - "src": "2145:82:3", + "src": "2194:82:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1135, + "id": 1189, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2163:19:3", + "referencedDeclaration": 1145, + "src": "2212:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526567697374726174696f6e20697320636c6f736564", - "id": 1136, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2184:24:3", - "subdenomination": null, + "src": "2233:24:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_165f485d6f027a34a6513fac264b18a05f1df4e6f9bc08e6d832426c02091bd3", "typeString": "literal_string \"Registration is closed\"" @@ -9059,18 +8934,18 @@ "typeString": "literal_string \"Registration is closed\"" } ], - "id": 1134, + "id": 1188, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2155:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2204:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1137, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": false, @@ -9078,49 +8953,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2155:54:3", + "src": "2204:54:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1138, + "id": 1192, "nodeType": "ExpressionStatement", - "src": "2155:54:3" + "src": "2204:54:3" }, { - "id": 1139, + "id": 1193, "nodeType": "PlaceholderStatement", - "src": "2219:1:3" + "src": "2268:1:3" } ] }, - "documentation": null, - "id": 1141, + "id": 1195, "name": "registrationIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1133, + "id": 1187, "nodeType": "ParameterList", "parameters": [], - "src": "2142:2:3" + "src": "2191:2:3" }, - "src": "2115:112:3", + "src": "2164:112:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1150, + "id": 1204, "nodeType": "Block", - "src": "2265:81:3", + "src": "2314:81:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1145, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": false, @@ -9128,15 +9002,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2283:20:3", + "src": "2332:20:3", "subExpression": { - "argumentTypes": null, - "id": 1144, + "id": 1198, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "2284:19:3", + "referencedDeclaration": 1145, + "src": "2333:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9148,17 +9021,15 @@ } }, { - "argumentTypes": null, "hexValue": "526567697374726174696f6e206973206f70656e", - "id": 1146, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2305:22:3", - "subdenomination": null, + "src": "2354:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6a1a19eb3ff348bc505cf62fbc5a8ce5bd035770d300520d27aaf7ccfa8a7767", "typeString": "literal_string \"Registration is open\"" @@ -9177,18 +9048,18 @@ "typeString": "literal_string \"Registration is open\"" } ], - "id": 1143, + "id": 1197, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2275:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2324:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1147, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, @@ -9196,71 +9067,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2275:53:3", + "src": "2324:53:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1148, + "id": 1202, "nodeType": "ExpressionStatement", - "src": "2275:53:3" + "src": "2324:53:3" }, { - "id": 1149, + "id": 1203, "nodeType": "PlaceholderStatement", - "src": "2338:1:3" + "src": "2387:1:3" } ] }, - "documentation": null, - "id": 1151, + "id": 1205, "name": "registrationIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 1142, + "id": 1196, "nodeType": "ParameterList", "parameters": [], - "src": "2262:2:3" + "src": "2311:2:3" }, - "src": "2233:113:3", + "src": "2282:113:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1159, + "id": 1213, "nodeType": "Block", - "src": "2380:78:3", + "src": "2429:78:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1154, + "id": 1208, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "2398:17:3", + "referencedDeclaration": 1147, + "src": "2447:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5375626d697373696f6e20697320636c6f736564", - "id": 1155, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2417:22:3", - "subdenomination": null, + "src": "2466:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a18bec0366cac989658e03e4a58fe978db1cb03c7023b7f1e3639200cd2f6cd9", "typeString": "literal_string \"Submission is closed\"" @@ -9279,18 +9147,18 @@ "typeString": "literal_string \"Submission is closed\"" } ], - "id": 1153, + "id": 1207, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2390:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2439:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1156, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, @@ -9298,49 +9166,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2390:50:3", + "src": "2439:50:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1157, + "id": 1211, "nodeType": "ExpressionStatement", - "src": "2390:50:3" + "src": "2439:50:3" }, { - "id": 1158, + "id": 1212, "nodeType": "PlaceholderStatement", - "src": "2450:1:3" + "src": "2499:1:3" } ] }, - "documentation": null, - "id": 1160, + "id": 1214, "name": "submissionIsOpen", "nodeType": "ModifierDefinition", "parameters": { - "id": 1152, + "id": 1206, "nodeType": "ParameterList", "parameters": [], - "src": "2377:2:3" + "src": "2426:2:3" }, - "src": "2352:106:3", + "src": "2401:106:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1169, + "id": 1223, "nodeType": "Block", - "src": "2494:77:3", + "src": "2543:77:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1164, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, @@ -9348,15 +9215,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2512:18:3", + "src": "2561:18:3", "subExpression": { - "argumentTypes": null, - "id": 1163, + "id": 1217, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "2513:17:3", + "referencedDeclaration": 1147, + "src": "2562:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9368,17 +9234,15 @@ } }, { - "argumentTypes": null, "hexValue": "5375626d697373696f6e206973206f70656e", - "id": 1165, + "id": 1219, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2532:20:3", - "subdenomination": null, + "src": "2581:20:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0045a0a9140511cead0d352a5693cb76a5e30a49ce0769e73f7976a9c6cf7fb4", "typeString": "literal_string \"Submission is open\"" @@ -9397,18 +9261,18 @@ "typeString": "literal_string \"Submission is open\"" } ], - "id": 1162, + "id": 1216, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2504:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2553:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1166, + "id": 1220, "isConstant": false, "isLValue": false, "isPure": false, @@ -9416,57 +9280,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2504:49:3", + "src": "2553:49:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1167, + "id": 1221, "nodeType": "ExpressionStatement", - "src": "2504:49:3" + "src": "2553:49:3" }, { - "id": 1168, + "id": 1222, "nodeType": "PlaceholderStatement", - "src": "2563:1:3" + "src": "2612:1:3" } ] }, - "documentation": null, - "id": 1170, + "id": 1224, "name": "submissionIsClosed", "nodeType": "ModifierDefinition", "parameters": { - "id": 1161, + "id": 1215, "nodeType": "ParameterList", "parameters": [], - "src": "2491:2:3" + "src": "2540:2:3" }, - "src": "2464:107:3", + "src": "2513:107:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1182, + "id": 1236, "nodeType": "Block", - "src": "2614:77:3", + "src": "2663:77:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1176, + "id": 1230, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1172, - "src": "2646:6:3", + "referencedDeclaration": 1226, + "src": "2695:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9480,18 +9342,18 @@ "typeString": "uint256" } ], - "id": 1175, + "id": 1229, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "2632:13:3", + "referencedDeclaration": 1745, + "src": "2681:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1177, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, @@ -9499,24 +9361,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2632:21:3", + "src": "2681:21:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207465616d206964", - "id": 1178, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2655:17:3", - "subdenomination": null, + "src": "2704:17:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_571f2ed6e8a5538ea54204f561cb7ffcc7bba9fb904df91289afa3cee0194bbc", "typeString": "literal_string \"Invalid team id\"" @@ -9535,18 +9396,18 @@ "typeString": "literal_string \"Invalid team id\"" } ], - "id": 1174, + "id": 1228, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2624:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2673:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1179, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -9554,38 +9415,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2624:49:3", + "src": "2673:49:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1180, + "id": 1234, "nodeType": "ExpressionStatement", - "src": "2624:49:3" + "src": "2673:49:3" }, { - "id": 1181, + "id": 1235, "nodeType": "PlaceholderStatement", - "src": "2683:1:3" + "src": "2732:1:3" } ] }, - "documentation": null, - "id": 1183, + "id": 1237, "name": "validTeamId", "nodeType": "ModifierDefinition", "parameters": { - "id": 1173, + "id": 1227, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1172, + "id": 1226, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1183, - "src": "2598:14:3", + "scope": 1237, + "src": "2647:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9593,45 +9455,42 @@ "typeString": "uint256" }, "typeName": { - "id": 1171, + "id": 1225, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2598:7:3", + "src": "2647:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2597:16:3" + "src": "2646:16:3" }, - "src": "2577:114:3", + "src": "2626:114:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1195, + "id": 1249, "nodeType": "Block", - "src": "2737:83:3", + "src": "2786:83:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1189, + "id": 1243, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1185, - "src": "2770:6:3", + "referencedDeclaration": 1239, + "src": "2819:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9645,18 +9504,18 @@ "typeString": "uint256" } ], - "id": 1188, + "id": 1242, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "2755:14:3", + "referencedDeclaration": 1771, + "src": "2804:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1190, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, @@ -9664,24 +9523,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2755:22:3", + "src": "2804:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420617070726f766564", - "id": 1191, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2779:22:3", - "subdenomination": null, + "src": "2828:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_93b89bf7b168f7f31c6e9087225242369de79bf9b7b75b2a443371536dcc9123", "typeString": "literal_string \"Team is not approved\"" @@ -9700,18 +9558,18 @@ "typeString": "literal_string \"Team is not approved\"" } ], - "id": 1187, + "id": 1241, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2747:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2796:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1192, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -9719,38 +9577,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2747:55:3", + "src": "2796:55:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1193, + "id": 1247, "nodeType": "ExpressionStatement", - "src": "2747:55:3" + "src": "2796:55:3" }, { - "id": 1194, + "id": 1248, "nodeType": "PlaceholderStatement", - "src": "2812:1:3" + "src": "2861:1:3" } ] }, - "documentation": null, - "id": 1196, + "id": 1250, "name": "teamIsApproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 1186, + "id": 1240, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1185, + "id": 1239, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1196, - "src": "2721:14:3", + "scope": 1250, + "src": "2770:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9758,37 +9617,35 @@ "typeString": "uint256" }, "typeName": { - "id": 1184, + "id": 1238, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2721:7:3", + "src": "2770:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2720:16:3" + "src": "2769:16:3" }, - "src": "2697:123:3", + "src": "2746:123:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1209, + "id": 1263, "nodeType": "Block", - "src": "2866:85:3", + "src": "2915:85:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1204, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, @@ -9796,18 +9653,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2884:23:3", + "src": "2933:23:3", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1202, + "id": 1256, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "2900:6:3", + "referencedDeclaration": 1252, + "src": "2949:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9821,18 +9676,18 @@ "typeString": "uint256" } ], - "id": 1201, + "id": 1255, "name": "isTeamApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1697, - "src": "2885:14:3", + "referencedDeclaration": 1771, + "src": "2934:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1203, + "id": 1257, "isConstant": false, "isLValue": false, "isPure": false, @@ -9840,7 +9695,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2885:22:3", + "src": "2934:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9852,17 +9708,15 @@ } }, { - "argumentTypes": null, "hexValue": "5465616d206973206e6f7420726570726f7665642e", - "id": 1205, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2909:23:3", - "subdenomination": null, + "src": "2958:23:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f6774fb2887550878442301d45839e1dedc976e8e25e50f9ff79773b0799591", "typeString": "literal_string \"Team is not reproved.\"" @@ -9881,18 +9735,18 @@ "typeString": "literal_string \"Team is not reproved.\"" } ], - "id": 1200, + "id": 1254, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2876:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2925:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1206, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -9900,38 +9754,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2876:57:3", + "src": "2925:57:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1207, + "id": 1261, "nodeType": "ExpressionStatement", - "src": "2876:57:3" + "src": "2925:57:3" }, { - "id": 1208, + "id": 1262, "nodeType": "PlaceholderStatement", - "src": "2943:1:3" + "src": "2992:1:3" } ] }, - "documentation": null, - "id": 1210, + "id": 1264, "name": "teamIsReproved", "nodeType": "ModifierDefinition", "parameters": { - "id": 1199, + "id": 1253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1198, + "id": 1252, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "2850:14:3", + "scope": 1264, + "src": "2899:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9939,119 +9794,83 @@ "typeString": "uint256" }, "typeName": { - "id": 1197, + "id": 1251, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2850:7:3", + "src": "2899:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2849:16:3" - }, - "src": "2826:125:3", - "visibility": "internal" - }, - { - "body": { - "id": 1213, - "nodeType": "Block", - "src": "3026:2:3", - "statements": [] - }, - "documentation": "@dev This class needs to be inherited.", - "id": 1214, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1211, - "nodeType": "ParameterList", - "parameters": [], - "src": "3014:2:3" + "src": "2898:16:3" }, - "returnParameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [], - "src": "3026:0:3" - }, - "scope": 1698, - "src": "3003:25:3", - "stateMutability": "nonpayable", - "superFunction": null, + "src": "2875:125:3", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1250, + "id": 1301, "nodeType": "Block", - "src": "3591:141:3", + "src": "3563:141:3", "statements": [ { - "assignments": [1233], + "assignments": [1284], "declarations": [ { "constant": false, - "id": 1233, + "id": 1284, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1250, - "src": "3601:16:3", + "scope": 1301, + "src": "3573:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1232, + "id": 1283, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "3601:4:3", + "referencedDeclaration": 1134, + "src": "3573:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1237, + "id": 1288, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1234, + "id": 1285, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "3620:5:3", + "referencedDeclaration": 1141, + "src": "3592:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1236, + "id": 1287, "indexExpression": { - "argumentTypes": null, - "id": 1235, + "id": 1286, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3626:6:3", + "referencedDeclaration": 1267, + "src": "3598:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10062,237 +9881,231 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3620:13:3", + "src": "3592:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3601:32:3" + "src": "3573:32:3" }, { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1238, + "id": 1289, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3651:4:3", + "referencedDeclaration": 1284, + "src": "3623:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1239, + "id": 1290, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "3651:9:3", + "referencedDeclaration": 1125, + "src": "3623:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1240, + "id": 1291, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3662:4:3", + "referencedDeclaration": 1284, + "src": "3634:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1241, + "id": 1292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "3662:16:3", + "referencedDeclaration": 1127, + "src": "3634:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1242, + "id": 1293, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3680:4:3", + "referencedDeclaration": 1284, + "src": "3652:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1243, + "id": 1294, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "3680:17:3", + "referencedDeclaration": 1129, + "src": "3652:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1244, + "id": 1295, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3699:4:3", + "referencedDeclaration": 1284, + "src": "3671:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1245, + "id": 1296, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "3699:13:3", + "referencedDeclaration": 1131, + "src": "3671:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1246, + "id": 1297, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1233, - "src": "3714:4:3", + "referencedDeclaration": 1284, + "src": "3686:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1247, + "id": 1298, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "3714:10:3", + "referencedDeclaration": 1133, + "src": "3686:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1248, + "id": 1299, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3650:75:3", + "src": "3622:75:3", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_bytes32_$_t_bool_$_t_uint256_$", "typeString": "tuple(bytes32,address,bytes32,bool,uint256)" } }, - "functionReturnParameters": 1231, - "id": 1249, + "functionReturnParameters": 1282, + "id": 1300, "nodeType": "Return", - "src": "3643:82:3" + "src": "3615:82:3" } ] }, - "documentation": "@notice Returns the stored information of a team\n@param teamId {uint256} the team's unique identifier returned on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade", - "id": 1251, + "documentation": { + "id": 1265, + "nodeType": "StructuredDocumentation", + "src": "3006:400:3", + "text": "@notice Returns the stored information of a team\n@param teamId {uint256} the team's unique identifier returned on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade" + }, + "functionSelector": "008e0f1b", + "id": 1302, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1219, + "id": 1270, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "3520:6:3", + "referencedDeclaration": 1267, + "src": "3492:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1220, + "id": 1271, "modifierName": { - "argumentTypes": null, - "id": 1218, + "id": 1269, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "3508:11:3", + "referencedDeclaration": 1237, + "src": "3480:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "3508:19:3" + "src": "3480:19:3" } ], "name": "getTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1217, + "id": 1268, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1216, + "id": 1267, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3456:14:3", + "scope": 1302, + "src": "3428:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10300,32 +10113,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1215, + "id": 1266, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3456:7:3", + "src": "3428:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3455:16:3" + "src": "3427:16:3" }, "returnParameters": { - "id": 1231, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1222, + "id": 1273, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3545:7:3", + "scope": 1302, + "src": "3517:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10333,25 +10146,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1221, + "id": 1272, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3545:7:3", + "src": "3517:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1224, + "id": 1275, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3554:7:3", + "scope": 1302, + "src": "3526:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10359,26 +10172,26 @@ "typeString": "address" }, "typeName": { - "id": 1223, + "id": 1274, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3554:7:3", + "src": "3526:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1226, + "id": 1277, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3563:7:3", + "scope": 1302, + "src": "3535:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10386,25 +10199,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1225, + "id": 1276, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3563:7:3", + "src": "3535:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1228, + "id": 1279, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3572:4:3", + "scope": 1302, + "src": "3544:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10412,25 +10225,25 @@ "typeString": "bool" }, "typeName": { - "id": 1227, + "id": 1278, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3572:4:3", + "src": "3544:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1230, + "id": 1281, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1251, - "src": "3578:7:3", + "scope": 1302, + "src": "3550:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10438,56 +10251,52 @@ "typeString": "uint256" }, "typeName": { - "id": 1229, + "id": 1280, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3578:7:3", + "src": "3550:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3544:42:3" + "src": "3516:42:3" }, - "scope": 1698, - "src": "3439:293:3", + "scope": 1772, + "src": "3411:293:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1293, + "id": 1346, "nodeType": "Block", - "src": "4282:222:3", + "src": "4254:222:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1271, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1267, + "id": 1319, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1253, - "src": "4300:11:3", + "referencedDeclaration": 1305, + "src": "4272:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10496,20 +10305,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1269, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4323:1:3", - "subdenomination": null, + "src": "4295:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10524,20 +10330,26 @@ "typeString": "int_const 0" } ], - "id": 1268, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4315:7:3", + "src": "4287:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1320, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4287:7:3", + "typeDescriptions": {} + } }, - "id": 1270, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -10545,30 +10357,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4315:10:3", + "src": "4287:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4300:25:3", + "src": "4272:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 1272, + "id": 1325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4327:22:3", - "subdenomination": null, + "src": "4299:22:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -10587,18 +10398,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 1266, + "id": 1318, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4292:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4264:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1273, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -10606,73 +10417,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4292:58:3", + "src": "4264:58:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1274, + "id": 1327, "nodeType": "ExpressionStatement", - "src": "4292:58:3" + "src": "4264:58:3" }, { - "assignments": [1276], + "assignments": [1329], "declarations": [ { "constant": false, - "id": 1276, + "id": 1329, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4360:16:3", + "scope": 1346, + "src": "4332:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1275, + "id": 1328, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "4360:4:3", + "referencedDeclaration": 1134, + "src": "4332:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1280, + "id": 1333, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1277, + "id": 1330, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "4379:13:3", + "referencedDeclaration": 1138, + "src": "4351:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1279, + "id": 1332, "indexExpression": { - "argumentTypes": null, - "id": 1278, + "id": 1331, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1253, - "src": "4393:11:3", + "referencedDeclaration": 1305, + "src": "4365:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10683,203 +10491,199 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4379:26:3", + "src": "4351:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "4360:45:3" + "src": "4332:45:3" }, { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1281, + "id": 1334, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4423:4:3", + "referencedDeclaration": 1329, + "src": "4395:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1282, + "id": 1335, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "name", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "4423:9:3", + "referencedDeclaration": 1125, + "src": "4395:9:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1283, + "id": 1336, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4434:4:3", + "referencedDeclaration": 1329, + "src": "4406:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1284, + "id": 1337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4434:16:3", + "referencedDeclaration": 1127, + "src": "4406:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1285, + "id": 1338, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4452:4:3", + "referencedDeclaration": 1329, + "src": "4424:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1286, + "id": 1339, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "4452:17:3", + "referencedDeclaration": 1129, + "src": "4424:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1287, + "id": 1340, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4471:4:3", + "referencedDeclaration": 1329, + "src": "4443:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1288, + "id": 1341, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "4471:13:3", + "referencedDeclaration": 1131, + "src": "4443:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1289, + "id": 1342, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1276, - "src": "4486:4:3", + "referencedDeclaration": 1329, + "src": "4458:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1290, + "id": 1343, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "grade", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, - "src": "4486:10:3", + "referencedDeclaration": 1133, + "src": "4458:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1291, + "id": 1344, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4422:75:3", + "src": "4394:75:3", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_address_$_t_bytes32_$_t_bool_$_t_uint256_$", "typeString": "tuple(bytes32,address,bytes32,bool,uint256)" } }, - "functionReturnParameters": 1265, - "id": 1292, + "functionReturnParameters": 1317, + "id": 1345, "nodeType": "Return", - "src": "4415:82:3" + "src": "4387:82:3" } ] }, - "documentation": "@notice Returns the stored information of a team, based on a provided address\n@param teamAddress {address} the team's contract address used on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade", - "id": 1294, + "documentation": { + "id": 1303, + "nodeType": "StructuredDocumentation", + "src": "3710:429:3", + "text": "@notice Returns the stored information of a team, based on a provided address\n@param teamAddress {address} the team's contract address used on registration\n@return {bytes32} team's name\n@return {address} team's address\n@return {bytes32} team's proposal data\n@return {bool} team's status: {true} for approved; {false} for reproved;\n@return {uint256} team's grade" + }, + "functionSelector": "4ea701a8", + "id": 1347, "implemented": true, "kind": "function", "modifiers": [], "name": "getTeamByAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 1254, + "id": 1306, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1253, + "id": 1305, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4198:19:3", + "scope": 1347, + "src": "4170:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10887,33 +10691,33 @@ "typeString": "address" }, "typeName": { - "id": 1252, + "id": 1304, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4198:7:3", + "src": "4170:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "4197:21:3" + "src": "4169:21:3" }, "returnParameters": { - "id": 1265, + "id": 1317, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1256, + "id": 1308, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4240:7:3", + "scope": 1347, + "src": "4212:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10921,25 +10725,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1255, + "id": 1307, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4240:7:3", + "src": "4212:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1258, + "id": 1310, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4249:7:3", + "scope": 1347, + "src": "4221:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10947,26 +10751,26 @@ "typeString": "address" }, "typeName": { - "id": 1257, + "id": 1309, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4249:7:3", + "src": "4221:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1260, + "id": 1312, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4258:7:3", + "scope": 1347, + "src": "4230:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10974,25 +10778,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1259, + "id": 1311, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4258:7:3", + "src": "4230:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1262, + "id": 1314, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4267:4:3", + "scope": 1347, + "src": "4239:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11000,25 +10804,25 @@ "typeString": "bool" }, "typeName": { - "id": 1261, + "id": 1313, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4267:4:3", + "src": "4239:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1264, + "id": 1316, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1294, - "src": "4273:7:3", + "scope": 1347, + "src": "4245:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11026,76 +10830,69 @@ "typeString": "uint256" }, "typeName": { - "id": 1263, + "id": 1315, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4273:7:3", + "src": "4245:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "4239:42:3" + "src": "4211:42:3" }, - "scope": 1698, - "src": "4172:332:3", + "scope": 1772, + "src": "4144:332:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1383, + "id": 1439, "nodeType": "Block", - "src": "5044:951:3", + "src": "5016:951:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 1312, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1308, + "id": 1362, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5062:8:3", + "referencedDeclaration": 1350, + "src": "5034:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1310, + "id": 1364, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1309, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5071:1:3", - "subdenomination": null, + "src": "5043:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11107,7 +10904,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5062:11:3", + "src": "5034:11:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -11116,41 +10913,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1311, + "id": 1365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5077:1:3", - "subdenomination": null, + "src": "5049:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5062:16:3", + "src": "5034:16:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d206e616d652063616e6e6f7420626520656d707479", - "id": 1313, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5080:27:3", - "subdenomination": null, + "src": "5052:27:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_063aa5aa991fa0fd3a1737bc16a024d36bf324d0007364da5abd91e80a783f7c", "typeString": "literal_string \"Team name cannot be empty\"" @@ -11169,18 +10962,18 @@ "typeString": "literal_string \"Team name cannot be empty\"" } ], - "id": 1307, + "id": 1361, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5054:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5026:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1314, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -11188,39 +10981,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5054:54:3", + "src": "5026:54:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1315, + "id": 1369, "nodeType": "ExpressionStatement", - "src": "5054:54:3" + "src": "5026:54:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1321, + "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1317, + "id": 1371, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5126:11:3", + "referencedDeclaration": 1352, + "src": "5098:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11229,20 +11020,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1319, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5149:1:3", - "subdenomination": null, + "src": "5121:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11257,20 +11045,26 @@ "typeString": "int_const 0" } ], - "id": 1318, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5141:7:3", + "src": "5113:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5113:7:3", + "typeDescriptions": {} + } }, - "id": 1320, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": true, @@ -11278,30 +11072,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5141:10:3", + "src": "5113:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5126:25:3", + "src": "5098:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d20616464726573732063616e6e6f74206265207a65726f", - "id": 1322, + "id": 1377, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5153:29:3", - "subdenomination": null, + "src": "5125:29:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9029ae4dfb5f969c9e791e54a26d156ec29cd11e61fee7d34de60d0469b5bc34", "typeString": "literal_string \"Team address cannot be zero\"" @@ -11320,18 +11113,18 @@ "typeString": "literal_string \"Team address cannot be zero\"" } ], - "id": 1316, + "id": 1370, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5118:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5090:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1323, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, @@ -11339,57 +11132,52 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5118:65:3", + "src": "5090:65:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1324, + "id": 1379, "nodeType": "ExpressionStatement", - "src": "5118:65:3" + "src": "5090:65:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1333, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1326, + "id": 1381, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "5201:13:3", + "referencedDeclaration": 1138, + "src": "5173:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1328, + "id": 1383, "indexExpression": { - "argumentTypes": null, - "id": 1327, + "id": 1382, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5215:11:3", + "referencedDeclaration": 1352, + "src": "5187:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11400,21 +11188,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5201:26:3", + "src": "5173:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1329, + "id": 1384, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5201:38:3", + "referencedDeclaration": 1127, + "src": "5173:38:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11423,20 +11211,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1331, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5251:1:3", - "subdenomination": null, + "src": "5223:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11451,20 +11236,26 @@ "typeString": "int_const 0" } ], - "id": 1330, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5243:7:3", + "src": "5215:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5215:7:3", + "typeDescriptions": {} + } }, - "id": 1332, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": true, @@ -11472,30 +11263,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5243:10:3", + "src": "5215:10:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "5201:52:3", + "src": "5173:52:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5465616d20616c72656164792072656769737465726564", - "id": 1334, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5255:25:3", - "subdenomination": null, + "src": "5227:25:3", "typeDescriptions": { "typeIdentifier": "t_stringliteral_95903a00e4279433a32fe8146fc60f00d6de4a784e95361fc743effdbdd7b367", "typeString": "literal_string \"Team already registered\"" @@ -11514,18 +11304,18 @@ "typeString": "literal_string \"Team already registered\"" } ], - "id": 1325, + "id": 1380, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5193:7:3", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5165:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1335, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, @@ -11533,26 +11323,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5193:88:3", + "src": "5165:88:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1336, + "id": 1392, "nodeType": "ExpressionStatement", - "src": "5193:88:3" + "src": "5165:88:3" }, { - "assignments": [1338], + "assignments": [1394], "declarations": [ { "constant": false, - "id": 1338, + "id": 1394, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "5291:14:3", + "scope": 1439, + "src": "5263:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11560,152 +11352,140 @@ "typeString": "uint256" }, "typeName": { - "id": 1337, + "id": 1393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5291:7:3", + "src": "5263:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1341, + "id": 1397, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1339, + "id": 1395, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5308:5:3", + "referencedDeclaration": 1141, + "src": "5280:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1340, + "id": 1396, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5308:12:3", + "src": "5280:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5291:29:3" + "src": "5263:29:3" }, { - "assignments": [1343], + "assignments": [1399], "declarations": [ { "constant": false, - "id": 1343, + "id": 1399, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1383, - "src": "5688:16:3", + "scope": 1439, + "src": "5660:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1342, + "id": 1398, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "5688:4:3", + "referencedDeclaration": 1134, + "src": "5660:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1352, + "id": 1408, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1345, + "id": 1401, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5712:6:3", + "referencedDeclaration": 1394, + "src": "5684:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1346, + "id": 1402, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5720:8:3", + "referencedDeclaration": 1350, + "src": "5692:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 1347, + "id": 1403, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5730:11:3", + "referencedDeclaration": 1352, + "src": "5702:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, - "id": 1348, + "id": 1404, "name": "proposalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1300, - "src": "5743:12:3", + "referencedDeclaration": 1354, + "src": "5715:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 1349, + "id": 1405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5757:4:3", - "subdenomination": null, + "src": "5729:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11713,17 +11493,15 @@ "value": "true" }, { - "argumentTypes": null, "hexValue": "30", - "id": 1350, + "id": 1406, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5763:1:3", - "subdenomination": null, + "src": "5735:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -11758,18 +11536,18 @@ "typeString": "int_const 0" } ], - "id": 1344, + "id": 1400, "name": "Team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "5707:4:3", + "referencedDeclaration": 1134, + "src": "5679:4:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Team_$1085_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Team_$1134_storage_ptr_$", "typeString": "type(struct ContestTeamRegistry.Team storage pointer)" } }, - "id": 1351, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -11777,29 +11555,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5707:58:3", + "src": "5679:58:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5688:77:3" + "src": "5660:77:3" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1356, + "id": 1412, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "5786:4:3", + "referencedDeclaration": 1399, + "src": "5758:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } } @@ -11807,38 +11584,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } ], "expression": { - "argumentTypes": null, - "id": 1353, + "id": 1409, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5775:5:3", + "referencedDeclaration": 1141, + "src": "5747:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1355, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5775:10:3", + "src": "5747:10:3", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Team_$1085_storage_$returns$_t_uint256_$", - "typeString": "function (struct ContestTeamRegistry.Team storage ref) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Team_$1134_storage_$returns$__$", + "typeString": "function (struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1357, + "id": 1413, "isConstant": false, "isLValue": false, "isPure": false, @@ -11846,48 +11621,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5775:16:3", + "src": "5747:16:3", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1358, + "id": 1414, "nodeType": "ExpressionStatement", - "src": "5775:16:3" + "src": "5747:16:3" }, { "expression": { - "argumentTypes": null, - "id": 1365, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1359, + "id": 1415, "name": "teamByAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "5801:13:3", + "referencedDeclaration": 1138, + "src": "5773:13:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1085_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Team_$1134_storage_$", "typeString": "mapping(address => struct ContestTeamRegistry.Team storage ref)" } }, - "id": 1361, + "id": 1417, "indexExpression": { - "argumentTypes": null, - "id": 1360, + "id": 1416, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5815:11:3", + "referencedDeclaration": 1352, + "src": "5787:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11898,38 +11670,35 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5801:26:3", + "src": "5773:26:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1362, + "id": 1418, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "5830:5:3", + "referencedDeclaration": 1141, + "src": "5802:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1364, + "id": 1420, "indexExpression": { - "argumentTypes": null, - "id": 1363, + "id": 1419, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5836:6:3", + "referencedDeclaration": 1394, + "src": "5808:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11940,38 +11709,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5830:13:3", + "src": "5802:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "src": "5801:42:3", + "src": "5773:42:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1366, + "id": 1422, "nodeType": "ExpressionStatement", - "src": "5801:42:3" + "src": "5773:42:3" }, { "expression": { - "argumentTypes": null, - "id": 1372, + "id": 1428, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1367, + "id": 1423, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "5853:18:3", + "referencedDeclaration": 1143, + "src": "5825:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11980,20 +11747,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1370, + "id": 1426, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5897:1:3", - "subdenomination": null, + "src": "5869:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -12009,33 +11773,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1368, + "id": 1424, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "5874:18:3", + "referencedDeclaration": 1143, + "src": "5846:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1369, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "5874:22:3", + "referencedDeclaration": 3647, + "src": "5846:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1371, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -12043,77 +11806,72 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5874:25:3", + "src": "5846:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5853:46:3", + "src": "5825:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1373, + "id": 1429, "nodeType": "ExpressionStatement", - "src": "5853:46:3" + "src": "5825:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1375, + "id": 1431, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5929:6:3", + "referencedDeclaration": 1394, + "src": "5901:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1376, + "id": 1432, "name": "teamName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1296, - "src": "5937:8:3", + "referencedDeclaration": 1350, + "src": "5909:8:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 1377, + "id": 1433, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1298, - "src": "5947:11:3", + "referencedDeclaration": 1352, + "src": "5919:11:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "hexValue": "74727565", - "id": 1378, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5960:4:3", - "subdenomination": null, + "src": "5932:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -12140,18 +11898,18 @@ "typeString": "bool" } ], - "id": 1374, + "id": 1430, "name": "TeamRegistered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, - "src": "5914:14:3", + "referencedDeclaration": 1158, + "src": "5886:14:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,bytes32,address,bool)" } }, - "id": 1379, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, @@ -12159,75 +11917,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5914:51:3", + "src": "5886:51:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1380, + "id": 1436, "nodeType": "EmitStatement", - "src": "5909:56:3" + "src": "5881:56:3" }, { "expression": { - "argumentTypes": null, - "id": 1381, + "id": 1437, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5982:6:3", + "referencedDeclaration": 1394, + "src": "5954:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1306, - "id": 1382, + "functionReturnParameters": 1360, + "id": 1438, "nodeType": "Return", - "src": "5975:13:3" + "src": "5947:13:3" } ] }, - "documentation": "@notice Registers a new team in the contest registry.\n@dev Registration process must be open.\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's proposal data; could be a hash for a file \non IPFS or for a github link; not required", - "id": 1384, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "4482:372:3", + "text": "@notice Registers a new team in the contest registry.\n@dev Registration process must be open.\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's name; required\n@param teamName {bytes32} team's proposal data; could be a hash for a file \non IPFS or for a github link; not required" + }, + "functionSelector": "7385712c", + "id": 1440, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1303, + "id": 1357, "modifierName": { - "argumentTypes": null, - "id": 1302, + "id": 1356, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "4995:18:3", + "referencedDeclaration": 1195, + "src": "4967:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4995:18:3" + "src": "4967:18:3" } ], "name": "registerTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1301, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1296, + "id": 1350, + "mutability": "mutable", "name": "teamName", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4909:16:3", + "scope": 1440, + "src": "4881:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12235,25 +11998,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1295, + "id": 1349, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4909:7:3", + "src": "4881:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1298, + "id": 1352, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4927:19:3", + "scope": 1440, + "src": "4899:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12261,26 +12024,26 @@ "typeString": "address" }, "typeName": { - "id": 1297, + "id": 1351, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4927:7:3", + "src": "4899:7:3", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1300, + "id": 1354, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "4948:20:3", + "scope": 1440, + "src": "4920:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12288,32 +12051,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 1299, + "id": 1353, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4948:7:3", + "src": "4920:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "4908:61:3" + "src": "4880:61:3" }, "returnParameters": { - "id": 1306, + "id": 1360, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1305, + "id": 1359, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1384, - "src": "5031:7:3", + "scope": 1440, + "src": "5003:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12321,90 +12084,85 @@ "typeString": "uint256" }, "typeName": { - "id": 1304, + "id": 1358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5031:7:3", + "src": "5003:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "5030:9:3" + "src": "5002:9:3" }, - "scope": 1698, - "src": "4887:1108:3", + "scope": 1772, + "src": "4859:1108:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1420, + "id": 1477, "nodeType": "Block", - "src": "6377:172:3", + "src": "6349:172:3", "statements": [ { - "assignments": [1400], + "assignments": [1457], "declarations": [ { "constant": false, - "id": 1400, + "id": 1457, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1420, - "src": "6387:17:3", + "scope": 1477, + "src": "6359:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1399, + "id": 1456, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "6387:4:3", + "referencedDeclaration": 1134, + "src": "6359:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1404, + "id": 1461, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1401, + "id": 1458, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "6407:5:3", + "referencedDeclaration": 1141, + "src": "6379:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1403, + "id": 1460, "indexExpression": { - "argumentTypes": null, - "id": 1402, + "id": 1459, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6413:6:3", + "referencedDeclaration": 1443, + "src": "6385:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12415,47 +12173,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6407:13:3", + "src": "6379:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6387:33:3" + "src": "6359:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1409, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1405, + "id": 1462, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6430:4:3", + "referencedDeclaration": 1457, + "src": "6402:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1407, + "id": 1464, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "6430:17:3", + "referencedDeclaration": 1129, + "src": "6402:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12464,114 +12219,106 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1408, + "id": 1465, "name": "proposalData", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "6450:12:3", + "referencedDeclaration": 1445, + "src": "6422:12:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6430:32:3", + "src": "6402:32:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1410, + "id": 1467, "nodeType": "ExpressionStatement", - "src": "6430:32:3" + "src": "6402:32:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1412, + "id": 1469, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6497:4:3", + "referencedDeclaration": 1457, + "src": "6469:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1413, + "id": 1470, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "6497:7:3", + "referencedDeclaration": 1123, + "src": "6469:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1414, + "id": 1471, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6506:4:3", + "referencedDeclaration": 1457, + "src": "6478:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1415, + "id": 1472, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "6506:16:3", + "referencedDeclaration": 1127, + "src": "6478:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1416, + "id": 1473, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1400, - "src": "6524:4:3", + "referencedDeclaration": 1457, + "src": "6496:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1417, + "id": 1474, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "proposalData", "nodeType": "MemberAccess", - "referencedDeclaration": 1080, - "src": "6524:17:3", + "referencedDeclaration": 1129, + "src": "6496:17:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12593,18 +12340,18 @@ "typeString": "bytes32" } ], - "id": 1411, + "id": 1468, "name": "TeamProposalUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1124, - "src": "6477:19:3", + "referencedDeclaration": 1177, + "src": "6449:19:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$__$", "typeString": "function (uint256,address,bytes32)" } }, - "id": 1418, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -12612,122 +12359,124 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6477:65:3", + "src": "6449:65:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1419, + "id": 1476, "nodeType": "EmitStatement", - "src": "6472:70:3" + "src": "6444:70:3" } ] }, - "documentation": "@notice Updates the proposal data for a specific team.\n@param teamId team's unique identifier; required\n@param proposalData the updated data for the team's proposal", - "id": 1421, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "5973:200:3", + "text": "@notice Updates the proposal data for a specific team.\n@param teamId team's unique identifier; required\n@param proposalData the updated data for the team's proposal" + }, + "functionSelector": "eaf2f9cd", + "id": 1478, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1391, + "id": 1448, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6309:6:3", + "referencedDeclaration": 1443, + "src": "6281:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1392, + "id": 1449, "modifierName": { - "argumentTypes": null, - "id": 1390, + "id": 1447, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "6297:11:3", + "referencedDeclaration": 1237, + "src": "6269:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6297:19:3" + "src": "6269:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1394, + "id": 1451, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "6340:6:3", + "referencedDeclaration": 1443, + "src": "6312:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1395, + "id": 1452, "modifierName": { - "argumentTypes": null, - "id": 1393, + "id": 1450, "name": "teamIsApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "6325:14:3", + "referencedDeclaration": 1250, + "src": "6297:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "6325:22:3" + "src": "6297:22:3" }, { - "arguments": null, - "id": 1397, + "id": 1454, "modifierName": { - "argumentTypes": null, - "id": 1396, + "id": 1453, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "6356:16:3", + "referencedDeclaration": 1214, + "src": "6328:16:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6356:16:3" + "src": "6328:16:3" } ], "name": "updateProposalData", "nodeType": "FunctionDefinition", "parameters": { - "id": 1389, + "id": 1446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1386, + "id": 1443, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "6234:14:3", + "scope": 1478, + "src": "6206:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12735,25 +12484,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1385, + "id": 1442, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6234:7:3", + "src": "6206:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1388, + "id": 1445, + "mutability": "mutable", "name": "proposalData", "nodeType": "VariableDeclaration", - "scope": 1421, - "src": "6250:20:3", + "scope": 1478, + "src": "6222:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12761,57 +12510,55 @@ "typeString": "bytes32" }, "typeName": { - "id": 1387, + "id": 1444, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6250:7:3", + "src": "6222:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "6233:38:3" + "src": "6205:38:3" }, "returnParameters": { - "id": 1398, + "id": 1455, "nodeType": "ParameterList", "parameters": [], - "src": "6377:0:3" + "src": "6349:0:3" }, - "scope": 1698, - "src": "6206:343:3", + "scope": 1772, + "src": "6178:343:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1429, + "id": 1487, "nodeType": "Block", - "src": "6791:37:3", + "src": "6771:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1426, + "id": 1484, "name": "_closeRegistration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "6801:18:3", + "referencedDeclaration": 1583, + "src": "6781:18:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1427, + "id": 1485, "isConstant": false, "isLValue": false, "isPure": false, @@ -12819,87 +12566,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6801:20:3", + "src": "6781:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1428, + "id": 1486, "nodeType": "ExpressionStatement", - "src": "6801:20:3" + "src": "6781:20:3" } ] }, - "documentation": "@notice Closes the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1430, + "documentation": { + "id": 1479, + "nodeType": "StructuredDocumentation", + "src": "6527:174:3", + "text": "@notice Closes the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "7dc673bc", + "id": 1488, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1424, + "id": 1482, "modifierName": { - "argumentTypes": null, - "id": 1423, + "id": 1481, "name": "registrationIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "6772:18:3", + "referencedDeclaration": 1195, + "src": "6752:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "6772:18:3" + "src": "6752:18:3" } ], "name": "closeRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1422, + "id": 1480, "nodeType": "ParameterList", "parameters": [], - "src": "6760:2:3" + "src": "6732:2:3" }, "returnParameters": { - "id": 1425, + "id": 1483, "nodeType": "ParameterList", "parameters": [], - "src": "6791:0:3" + "src": "6771:0:3" }, - "scope": 1698, - "src": "6734:94:3", + "scope": 1772, + "src": "6706:102:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1438, + "id": 1497, "nodeType": "Block", - "src": "7070:36:3", + "src": "7058:36:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1435, + "id": 1494, "name": "_openRegistration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1528, - "src": "7080:17:3", + "referencedDeclaration": 1596, + "src": "7068:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1436, + "id": 1495, "isConstant": false, "isLValue": false, "isPure": false, @@ -12907,114 +12658,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7080:19:3", + "src": "7068:19:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1437, + "id": 1496, "nodeType": "ExpressionStatement", - "src": "7080:19:3" + "src": "7068:19:3" } ] }, - "documentation": "@notice Opens the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1439, + "documentation": { + "id": 1489, + "nodeType": "StructuredDocumentation", + "src": "6814:173:3", + "text": "@notice Opens the registration process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "d06e4ee7", + "id": 1498, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1433, + "id": 1492, "modifierName": { - "argumentTypes": null, - "id": 1432, + "id": 1491, "name": "registrationIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, - "src": "7049:20:3", + "referencedDeclaration": 1205, + "src": "7037:20:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7049:20:3" + "src": "7037:20:3" } ], "name": "openRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1431, + "id": 1490, "nodeType": "ParameterList", "parameters": [], - "src": "7037:2:3" + "src": "7017:2:3" }, "returnParameters": { - "id": 1434, + "id": 1493, "nodeType": "ParameterList", "parameters": [], - "src": "7070:0:3" + "src": "7058:0:3" }, - "scope": 1698, - "src": "7012:94:3", + "scope": 1772, + "src": "6992:102:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1446, + "id": 1506, "nodeType": "Block", - "src": "7305:43:3", + "src": "7293:43:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1444, + "id": 1504, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "7322:19:3", + "referencedDeclaration": 1145, + "src": "7310:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1443, - "id": 1445, + "functionReturnParameters": 1503, + "id": 1505, "nodeType": "Return", - "src": "7315:26:3" + "src": "7303:26:3" } ] }, - "documentation": "@notice Gets the registration status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 1447, + "documentation": { + "id": 1499, + "nodeType": "StructuredDocumentation", + "src": "7100:126:3", + "text": "@notice Gets the registration status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "e35fb241", + "id": 1507, "implemented": true, "kind": "function", "modifiers": [], "name": "getRegistrationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1440, + "id": 1500, "nodeType": "ParameterList", "parameters": [], - "src": "7273:2:3" + "src": "7261:2:3" }, "returnParameters": { - "id": 1443, + "id": 1503, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1442, + "id": 1502, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1447, - "src": "7299:4:3", + "scope": 1507, + "src": "7287:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13022,51 +12784,49 @@ "typeString": "bool" }, "typeName": { - "id": 1441, + "id": 1501, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7299:4:3", + "src": "7287:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "7298:6:3" + "src": "7286:6:3" }, - "scope": 1698, - "src": "7243:105:3", + "scope": 1772, + "src": "7231:105:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1455, + "id": 1516, "nodeType": "Block", - "src": "7593:35:3", + "src": "7589:35:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1452, + "id": 1513, "name": "_closeSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "7603:16:3", + "referencedDeclaration": 1608, + "src": "7599:16:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1453, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -13074,87 +12834,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7603:18:3", + "src": "7599:18:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1454, + "id": 1515, "nodeType": "ExpressionStatement", - "src": "7603:18:3" + "src": "7599:18:3" } ] }, - "documentation": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1456, + "documentation": { + "id": 1508, + "nodeType": "StructuredDocumentation", + "src": "7342:181:3", + "text": "@notice Closes the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "ffc6ff1e", + "id": 1517, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1450, + "id": 1511, "modifierName": { - "argumentTypes": null, - "id": 1449, + "id": 1510, "name": "submissionIsOpen", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "7576:16:3", + "referencedDeclaration": 1214, + "src": "7572:16:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7576:16:3" + "src": "7572:16:3" } ], "name": "closeSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1448, + "id": 1509, "nodeType": "ParameterList", "parameters": [], - "src": "7564:2:3" + "src": "7552:2:3" }, "returnParameters": { - "id": 1451, + "id": 1512, "nodeType": "ParameterList", "parameters": [], - "src": "7593:0:3" + "src": "7589:0:3" }, - "scope": 1698, - "src": "7540:88:3", + "scope": 1772, + "src": "7528:96:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1464, + "id": 1526, "nodeType": "Block", - "src": "7873:34:3", + "src": "7877:34:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 1461, + "id": 1523, "name": "_openSubmission", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "7883:15:3", + "referencedDeclaration": 1621, + "src": "7887:15:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1462, + "id": 1524, "isConstant": false, "isLValue": false, "isPure": false, @@ -13162,114 +12926,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7883:17:3", + "src": "7887:17:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1463, + "id": 1525, "nodeType": "ExpressionStatement", - "src": "7883:17:3" + "src": "7887:17:3" } ] }, - "documentation": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.", - "id": 1465, + "documentation": { + "id": 1518, + "nodeType": "StructuredDocumentation", + "src": "7630:180:3", + "text": "@notice Opens the proposal submission process\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control." + }, + "functionSelector": "58e2f50e", + "id": 1527, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1459, + "id": 1521, "modifierName": { - "argumentTypes": null, - "id": 1458, + "id": 1520, "name": "submissionIsClosed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "7854:18:3", + "referencedDeclaration": 1224, + "src": "7858:18:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "7854:18:3" + "src": "7858:18:3" } ], "name": "openSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1457, + "id": 1519, "nodeType": "ParameterList", "parameters": [], - "src": "7842:2:3" + "src": "7838:2:3" }, "returnParameters": { - "id": 1460, + "id": 1522, "nodeType": "ParameterList", "parameters": [], - "src": "7873:0:3" + "src": "7877:0:3" }, - "scope": 1698, - "src": "7819:88:3", + "scope": 1772, + "src": "7815:96:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "external" }, { "body": { - "id": 1472, + "id": 1535, "nodeType": "Block", - "src": "8102:41:3", + "src": "8106:41:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1470, + "id": 1533, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "8119:17:3", + "referencedDeclaration": 1147, + "src": "8123:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1469, - "id": 1471, + "functionReturnParameters": 1532, + "id": 1534, "nodeType": "Return", - "src": "8112:24:3" + "src": "8116:24:3" } ] }, - "documentation": "@notice Gets the submission status\n@return {bool} returns {true} if enabled; otherwise, {false}.", - "id": 1473, + "documentation": { + "id": 1528, + "nodeType": "StructuredDocumentation", + "src": "7917:124:3", + "text": "@notice Gets the submission status\n@return {bool} returns {true} if enabled; otherwise, {false}." + }, + "functionSelector": "54e1db2b", + "id": 1536, "implemented": true, "kind": "function", "modifiers": [], "name": "getSubmissionStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 1466, + "id": 1529, "nodeType": "ParameterList", "parameters": [], - "src": "8070:2:3" + "src": "8074:2:3" }, "returnParameters": { - "id": 1469, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1468, + "id": 1531, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1473, - "src": "8096:4:3", + "scope": 1536, + "src": "8100:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13277,45 +13052,42 @@ "typeString": "bool" }, "typeName": { - "id": 1467, + "id": 1530, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8096:4:3", + "src": "8100:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "8095:6:3" + "src": "8099:6:3" }, - "scope": 1698, - "src": "8042:101:3", + "scope": 1772, + "src": "8046:101:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1482, + "id": 1546, "nodeType": "Block", - "src": "8462:37:3", + "src": "8466:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1479, + "id": 1543, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1475, - "src": "8485:6:3", + "referencedDeclaration": 1539, + "src": "8489:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13329,18 +13101,18 @@ "typeString": "uint256" } ], - "id": 1478, + "id": 1542, "name": "_approveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1592, - "src": "8472:12:3", + "referencedDeclaration": 1662, + "src": "8476:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1480, + "id": 1544, "isConstant": false, "isLValue": false, "isPure": false, @@ -13348,36 +13120,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8472:20:3", + "src": "8476:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1481, + "id": 1545, "nodeType": "ExpressionStatement", - "src": "8472:20:3" + "src": "8476:20:3" } ] }, - "documentation": "@notice (re)approves a team in participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be approved", - "id": 1483, + "documentation": { + "id": 1537, + "nodeType": "StructuredDocumentation", + "src": "8153:262:3", + "text": "@notice (re)approves a team in participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be approved" + }, + "functionSelector": "24ba9fab", + "id": 1547, "implemented": true, "kind": "function", "modifiers": [], "name": "approveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1476, + "id": 1540, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1475, + "id": 1539, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1483, - "src": "8437:14:3", + "scope": 1547, + "src": "8441:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13385,51 +13165,48 @@ "typeString": "uint256" }, "typeName": { - "id": 1474, + "id": 1538, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8437:7:3", + "src": "8441:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "8436:16:3" + "src": "8440:16:3" }, "returnParameters": { - "id": 1477, + "id": 1541, "nodeType": "ParameterList", "parameters": [], - "src": "8462:0:3" + "src": "8466:0:3" }, - "scope": 1698, - "src": "8416:83:3", + "scope": 1772, + "src": "8420:83:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1493, + "id": 1558, "nodeType": "Block", - "src": "8850:39:3", + "src": "8854:39:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1490, + "id": 1555, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1486, - "src": "8874:7:3", + "referencedDeclaration": 1551, + "src": "8878:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" @@ -13443,18 +13220,18 @@ "typeString": "uint256[] calldata" } ], - "id": 1489, + "id": 1554, "name": "_reproveTeams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1618, - "src": "8860:13:3", + "referencedDeclaration": 1689, + "src": "8864:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (uint256[] memory)" } }, - "id": 1491, + "id": 1556, "isConstant": false, "isLValue": false, "isPure": false, @@ -13462,36 +13239,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8860:22:3", + "src": "8864:22:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1492, + "id": 1557, "nodeType": "ExpressionStatement", - "src": "8860:22:3" + "src": "8864:22:3" } ] }, - "documentation": "@notice reprove teams from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamIds {uint256[]} an array containing the ids of the teams to be reproved", - "id": 1494, + "documentation": { + "id": 1548, + "nodeType": "StructuredDocumentation", + "src": "8509:281:3", + "text": "@notice reprove teams from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamIds {uint256[]} an array containing the ids of the teams to be reproved" + }, + "functionSelector": "288c4a46", + "id": 1559, "implemented": true, "kind": "function", "modifiers": [], "name": "reproveTeams", "nodeType": "FunctionDefinition", "parameters": { - "id": 1487, + "id": 1552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1486, + "id": 1551, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 1494, - "src": "8813:26:3", + "scope": 1559, + "src": "8817:26:3", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -13500,60 +13285,56 @@ }, "typeName": { "baseType": { - "id": 1484, + "id": 1549, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8813:7:3", + "src": "8817:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1485, - "length": null, + "id": 1550, "nodeType": "ArrayTypeName", - "src": "8813:9:3", + "src": "8817:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" } ], - "src": "8812:28:3" + "src": "8816:28:3" }, "returnParameters": { - "id": 1488, + "id": 1553, "nodeType": "ParameterList", "parameters": [], - "src": "8850:0:3" + "src": "8854:0:3" }, - "scope": 1698, - "src": "8791:98:3", + "scope": 1772, + "src": "8795:98:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1503, + "id": 1569, "nodeType": "Block", - "src": "9206:37:3", + "src": "9210:37:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1500, + "id": 1566, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1496, - "src": "9229:6:3", + "referencedDeclaration": 1562, + "src": "9233:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13567,18 +13348,18 @@ "typeString": "uint256" } ], - "id": 1499, + "id": 1565, "name": "_reproveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "9216:12:3", + "referencedDeclaration": 1730, + "src": "9220:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1501, + "id": 1567, "isConstant": false, "isLValue": false, "isPure": false, @@ -13586,36 +13367,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9216:20:3", + "src": "9220:20:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1502, + "id": 1568, "nodeType": "ExpressionStatement", - "src": "9216:20:3" + "src": "9220:20:3" } ] }, - "documentation": "@notice reproves a team from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be reproved", - "id": 1504, + "documentation": { + "id": 1560, + "nodeType": "StructuredDocumentation", + "src": "8899:260:3", + "text": "@notice reproves a team from participating in the contest\n@dev Should be overwritten on inherited contract to add modifier or require statements for access control.\n@param teamId {uint256} the ids of the teams to be reproved" + }, + "functionSelector": "f540548b", + "id": 1570, "implemented": true, "kind": "function", "modifiers": [], "name": "reproveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1497, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1496, + "id": 1562, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "9181:14:3", + "scope": 1570, + "src": "9185:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13623,55 +13412,52 @@ "typeString": "uint256" }, "typeName": { - "id": 1495, + "id": 1561, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9181:7:3", + "src": "9185:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "9180:16:3" + "src": "9184:16:3" }, "returnParameters": { - "id": 1498, + "id": 1564, "nodeType": "ParameterList", "parameters": [], - "src": "9206:0:3" + "src": "9210:0:3" }, - "scope": 1698, - "src": "9160:83:3", + "scope": 1772, + "src": "9164:83:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 1515, + "id": 1582, "nodeType": "Block", - "src": "9324:105:3", + "src": "9328:105:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1509, + "id": 1576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1507, + "id": 1574, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9334:19:3", + "referencedDeclaration": 1145, + "src": "9338:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13680,45 +13466,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1508, + "id": 1575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9356:5:3", - "subdenomination": null, + "src": "9360:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9334:27:3", + "src": "9338:27:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1510, + "id": 1577, "nodeType": "ExpressionStatement", - "src": "9334:27:3" + "src": "9338:27:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1512, + "id": 1579, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9402:19:3", + "referencedDeclaration": 1145, + "src": "9406:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13732,18 +13514,18 @@ "typeString": "bool" } ], - "id": 1511, + "id": 1578, "name": "RegistrationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "9376:25:3", + "referencedDeclaration": 1163, + "src": "9380:25:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1513, + "id": 1580, "isConstant": false, "isLValue": false, "isPure": false, @@ -13751,65 +13533,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9376:46:3", + "src": "9380:46:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1514, + "id": 1581, "nodeType": "EmitStatement", - "src": "9371:51:3" + "src": "9375:51:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1516, + "documentation": { + "id": 1571, + "nodeType": "StructuredDocumentation", + "src": "9253:31:3", + "text": "@dev internal implementation" + }, + "id": 1583, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1505, + "id": 1572, "nodeType": "ParameterList", "parameters": [], - "src": "9312:2:3" + "src": "9316:2:3" }, "returnParameters": { - "id": 1506, + "id": 1573, "nodeType": "ParameterList", "parameters": [], - "src": "9324:0:3" + "src": "9328:0:3" }, - "scope": 1698, - "src": "9285:144:3", + "scope": 1772, + "src": "9289:144:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1527, + "id": 1595, "nodeType": "Block", - "src": "9509:104:3", + "src": "9513:104:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1521, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1519, + "id": 1587, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9519:19:3", + "referencedDeclaration": 1145, + "src": "9523:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13818,45 +13604,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1520, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9541:4:3", - "subdenomination": null, + "src": "9545:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "9519:26:3", + "src": "9523:26:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1522, + "id": 1590, "nodeType": "ExpressionStatement", - "src": "9519:26:3" + "src": "9523:26:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1524, + "id": 1592, "name": "registrationEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1096, - "src": "9586:19:3", + "referencedDeclaration": 1145, + "src": "9590:19:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13870,18 +13652,18 @@ "typeString": "bool" } ], - "id": 1523, + "id": 1591, "name": "RegistrationStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "9560:25:3", + "referencedDeclaration": 1163, + "src": "9564:25:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1525, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": false, @@ -13889,65 +13671,69 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9560:46:3", + "src": "9564:46:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1526, + "id": 1594, "nodeType": "EmitStatement", - "src": "9555:51:3" + "src": "9559:51:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1528, + "documentation": { + "id": 1584, + "nodeType": "StructuredDocumentation", + "src": "9439:31:3", + "text": "@dev internal implementation" + }, + "id": 1596, "implemented": true, "kind": "function", "modifiers": [], "name": "_openRegistration", "nodeType": "FunctionDefinition", "parameters": { - "id": 1517, + "id": 1585, "nodeType": "ParameterList", "parameters": [], - "src": "9497:2:3" + "src": "9501:2:3" }, "returnParameters": { - "id": 1518, + "id": 1586, "nodeType": "ParameterList", "parameters": [], - "src": "9509:0:3" + "src": "9513:0:3" }, - "scope": 1698, - "src": "9471:142:3", + "scope": 1772, + "src": "9475:142:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1539, + "id": 1607, "nodeType": "Block", - "src": "9656:99:3", + "src": "9660:99:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1533, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1531, + "id": 1599, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9666:17:3", + "referencedDeclaration": 1147, + "src": "9670:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13956,45 +13742,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1532, + "id": 1600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9686:5:3", - "subdenomination": null, + "src": "9690:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "9666:25:3", + "src": "9670:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1534, + "id": 1602, "nodeType": "ExpressionStatement", - "src": "9666:25:3" + "src": "9670:25:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1536, + "id": 1604, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9730:17:3", + "referencedDeclaration": 1147, + "src": "9734:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14008,18 +13790,18 @@ "typeString": "bool" } ], - "id": 1535, + "id": 1603, "name": "SubmissionStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "9706:23:3", + "referencedDeclaration": 1168, + "src": "9710:23:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1537, + "id": 1605, "isConstant": false, "isLValue": false, "isPure": false, @@ -14027,65 +13809,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9706:42:3", + "src": "9710:42:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1538, + "id": 1606, "nodeType": "EmitStatement", - "src": "9701:47:3" + "src": "9705:47:3" } ] }, - "documentation": null, - "id": 1540, + "id": 1608, "implemented": true, "kind": "function", "modifiers": [], "name": "_closeSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1529, + "id": 1597, "nodeType": "ParameterList", "parameters": [], - "src": "9644:2:3" + "src": "9648:2:3" }, "returnParameters": { - "id": 1530, + "id": 1598, "nodeType": "ParameterList", "parameters": [], - "src": "9656:0:3" + "src": "9660:0:3" }, - "scope": 1698, - "src": "9619:136:3", + "scope": 1772, + "src": "9623:136:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1551, + "id": 1620, "nodeType": "Block", - "src": "9833:98:3", + "src": "9837:98:3", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1545, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1543, + "id": 1612, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9843:17:3", + "referencedDeclaration": 1147, + "src": "9847:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14094,45 +13874,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1544, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9863:4:3", - "subdenomination": null, + "src": "9867:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "9843:24:3", + "src": "9847:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1546, + "id": 1615, "nodeType": "ExpressionStatement", - "src": "9843:24:3" + "src": "9847:24:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1548, + "id": 1617, "name": "submissionEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1098, - "src": "9906:17:3", + "referencedDeclaration": 1147, + "src": "9910:17:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14146,18 +13922,18 @@ "typeString": "bool" } ], - "id": 1547, + "id": 1616, "name": "SubmissionStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1116, - "src": "9882:23:3", + "referencedDeclaration": 1168, + "src": "9886:23:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$returns$__$", "typeString": "function (bool)" } }, - "id": 1549, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": false, @@ -14165,106 +13941,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9882:42:3", + "src": "9886:42:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1550, + "id": 1619, "nodeType": "EmitStatement", - "src": "9877:47:3" + "src": "9881:47:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1552, + "documentation": { + "id": 1609, + "nodeType": "StructuredDocumentation", + "src": "9765:31:3", + "text": "@dev internal implementation" + }, + "id": 1621, "implemented": true, "kind": "function", "modifiers": [], "name": "_openSubmission", "nodeType": "FunctionDefinition", "parameters": { - "id": 1541, + "id": 1610, "nodeType": "ParameterList", "parameters": [], - "src": "9821:2:3" + "src": "9825:2:3" }, "returnParameters": { - "id": 1542, + "id": 1611, "nodeType": "ParameterList", "parameters": [], - "src": "9833:0:3" + "src": "9837:0:3" }, - "scope": 1698, - "src": "9797:134:3", + "scope": 1772, + "src": "9801:134:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1591, + "id": 1661, "nodeType": "Block", - "src": "10063:210:3", + "src": "10067:210:3", "statements": [ { - "assignments": [1564], + "assignments": [1634], "declarations": [ { "constant": false, - "id": 1564, + "id": 1634, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1591, - "src": "10073:17:3", + "scope": 1661, + "src": "10077:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1563, + "id": 1633, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "10073:4:3", + "referencedDeclaration": 1134, + "src": "10077:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1568, + "id": 1638, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1565, + "id": 1635, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10093:5:3", + "referencedDeclaration": 1141, + "src": "10097:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1567, + "id": 1637, "indexExpression": { - "argumentTypes": null, - "id": 1566, + "id": 1636, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10099:6:3", + "referencedDeclaration": 1624, + "src": "10103:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14275,47 +14053,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10093:13:3", + "src": "10097:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "10073:33:3" + "src": "10077:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1573, + "id": 1643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1569, + "id": 1639, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10116:4:3", + "referencedDeclaration": 1634, + "src": "10120:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1571, + "id": 1641, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10116:13:3", + "referencedDeclaration": 1131, + "src": "10120:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14324,49 +14099,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1572, + "id": 1642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10132:4:3", - "subdenomination": null, + "src": "10136:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "10116:20:3", + "src": "10120:20:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1574, + "id": 1644, "nodeType": "ExpressionStatement", - "src": "10116:20:3" + "src": "10120:20:3" }, { "expression": { - "argumentTypes": null, - "id": 1580, + "id": 1650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1575, + "id": 1645, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10146:18:3", + "referencedDeclaration": 1143, + "src": "10150:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14375,20 +14146,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1578, + "id": 1648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10190:1:3", - "subdenomination": null, + "src": "10194:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -14404,33 +14172,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1576, + "id": 1646, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10167:18:3", + "referencedDeclaration": 1143, + "src": "10171:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1577, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "10167:22:3", + "referencedDeclaration": 3647, + "src": "10171:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1579, + "id": 1649, "isConstant": false, "isLValue": false, "isPure": false, @@ -14438,108 +14205,102 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10167:25:3", + "src": "10171:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10146:46:3", + "src": "10150:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1581, + "id": 1651, "nodeType": "ExpressionStatement", - "src": "10146:46:3" + "src": "10150:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1583, + "id": 1653, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10225:4:3", + "referencedDeclaration": 1634, + "src": "10229:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1584, + "id": 1654, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "10225:7:3", + "referencedDeclaration": 1123, + "src": "10229:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1585, + "id": 1655, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10234:4:3", + "referencedDeclaration": 1634, + "src": "10238:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1586, + "id": 1656, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "10234:16:3", + "referencedDeclaration": 1127, + "src": "10238:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1587, + "id": 1657, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1564, - "src": "10252:4:3", + "referencedDeclaration": 1634, + "src": "10256:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1588, + "id": 1658, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10252:13:3", + "referencedDeclaration": 1131, + "src": "10256:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -14561,18 +14322,18 @@ "typeString": "bool" } ], - "id": 1582, + "id": 1652, "name": "TeamStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "10207:17:3", + "referencedDeclaration": 1186, + "src": "10211:17:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,address,bool)" } }, - "id": 1589, + "id": 1659, "isConstant": false, "isLValue": false, "isPure": false, @@ -14580,103 +14341,106 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10207:59:3", + "src": "10211:59:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1590, + "id": 1660, "nodeType": "EmitStatement", - "src": "10202:64:3" + "src": "10206:64:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1592, + "documentation": { + "id": 1622, + "nodeType": "StructuredDocumentation", + "src": "9941:31:3", + "text": "@dev internal implementation" + }, + "id": 1662, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1557, + "id": 1627, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10032:6:3", + "referencedDeclaration": 1624, + "src": "10036:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1558, + "id": 1628, "modifierName": { - "argumentTypes": null, - "id": 1556, + "id": 1626, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "10020:11:3", + "referencedDeclaration": 1237, + "src": "10024:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10020:19:3" + "src": "10024:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1560, + "id": 1630, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "10055:6:3", + "referencedDeclaration": 1624, + "src": "10059:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1561, + "id": 1631, "modifierName": { - "argumentTypes": null, - "id": 1559, + "id": 1629, "name": "teamIsReproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "10040:14:3", + "referencedDeclaration": 1264, + "src": "10044:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10040:22:3" + "src": "10044:22:3" } ], "name": "_approveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1555, + "id": 1625, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1554, + "id": 1624, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "9995:14:3", + "scope": 1662, + "src": "9999:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14684,73 +14448,68 @@ "typeString": "uint256" }, "typeName": { - "id": 1553, + "id": 1623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9995:7:3", + "src": "9999:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "9994:16:3" + "src": "9998:16:3" }, "returnParameters": { - "id": 1562, + "id": 1632, "nodeType": "ParameterList", "parameters": [], - "src": "10063:0:3" + "src": "10067:0:3" }, - "scope": 1698, - "src": "9973:300:3", + "scope": 1772, + "src": "9977:300:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1617, + "id": 1688, "nodeType": "Block", - "src": "10373:110:3", + "src": "10377:110:3", "statements": [ { "body": { - "id": 1615, + "id": 1686, "nodeType": "Block", - "src": "10428:49:3", + "src": "10432:49:3", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1610, + "id": 1681, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "10455:7:3", + "referencedDeclaration": 1666, + "src": "10459:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1612, + "id": 1683, "indexExpression": { - "argumentTypes": null, - "id": 1611, + "id": 1682, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10463:1:3", + "referencedDeclaration": 1670, + "src": "10467:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14761,7 +14520,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10455:10:3", + "src": "10459:10:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14775,18 +14534,18 @@ "typeString": "uint256" } ], - "id": 1609, + "id": 1680, "name": "_reproveTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "10442:12:3", + "referencedDeclaration": 1730, + "src": "10446:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 1613, + "id": 1684, "isConstant": false, "isLValue": false, "isPure": false, @@ -14794,37 +14553,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10442:24:3", + "src": "10446:24:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1614, + "id": 1685, "nodeType": "ExpressionStatement", - "src": "10442:24:3" + "src": "10446:24:3" } ] }, "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1605, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1602, + "id": 1673, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10403:1:3", + "referencedDeclaration": 1670, + "src": "10407:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14833,51 +14591,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1603, + "id": 1674, "name": "teamIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "10407:7:3", + "referencedDeclaration": 1666, + "src": "10411:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1604, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10407:14:3", + "src": "10411:14:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10403:18:3", + "src": "10407:18:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1616, + "id": 1687, "initializationExpression": { - "assignments": [1599], + "assignments": [1670], "declarations": [ { "constant": false, - "id": 1599, + "id": 1670, + "mutability": "mutable", "name": "i", "nodeType": "VariableDeclaration", - "scope": 1616, - "src": "10388:9:3", + "scope": 1687, + "src": "10392:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14885,32 +14641,29 @@ "typeString": "uint256" }, "typeName": { - "id": 1598, + "id": 1669, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10388:7:3", + "src": "10392:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1601, + "id": 1672, "initialValue": { - "argumentTypes": null, "hexValue": "30", - "id": 1600, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10400:1:3", - "subdenomination": null, + "src": "10404:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -14918,12 +14671,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10388:13:3" + "src": "10392:13:3" }, "loopExpression": { "expression": { - "argumentTypes": null, - "id": 1607, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": false, @@ -14931,15 +14683,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "10423:3:3", + "src": "10427:3:3", "subExpression": { - "argumentTypes": null, - "id": 1606, + "id": 1677, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "10423:1:3", + "referencedDeclaration": 1670, + "src": "10427:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14950,33 +14701,39 @@ "typeString": "uint256" } }, - "id": 1608, + "id": 1679, "nodeType": "ExpressionStatement", - "src": "10423:3:3" + "src": "10427:3:3" }, "nodeType": "ForStatement", - "src": "10383:94:3" + "src": "10387:94:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1618, + "documentation": { + "id": 1663, + "nodeType": "StructuredDocumentation", + "src": "10283:31:3", + "text": "@dev internal implementation" + }, + "id": 1689, "implemented": true, "kind": "function", "modifiers": [], "name": "_reproveTeams", "nodeType": "FunctionDefinition", "parameters": { - "id": 1596, + "id": 1667, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1595, + "id": 1666, + "mutability": "mutable", "name": "teamIds", "nodeType": "VariableDeclaration", - "scope": 1618, - "src": "10338:24:3", + "scope": 1689, + "src": "10342:24:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -14985,105 +14742,99 @@ }, "typeName": { "baseType": { - "id": 1593, + "id": 1664, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10338:7:3", + "src": "10342:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1594, - "length": null, + "id": 1665, "nodeType": "ArrayTypeName", - "src": "10338:9:3", + "src": "10342:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, - "value": null, "visibility": "internal" } ], - "src": "10337:26:3" + "src": "10341:26:3" }, "returnParameters": { - "id": 1597, + "id": 1668, "nodeType": "ParameterList", "parameters": [], - "src": "10373:0:3" + "src": "10377:0:3" }, - "scope": 1698, - "src": "10315:168:3", + "scope": 1772, + "src": "10319:168:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1657, + "id": 1729, "nodeType": "Block", - "src": "10615:211:3", + "src": "10619:211:3", "statements": [ { - "assignments": [1630], + "assignments": [1702], "declarations": [ { "constant": false, - "id": 1630, + "id": 1702, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1657, - "src": "10625:17:3", + "scope": 1729, + "src": "10629:17:3", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1629, + "id": 1701, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "10625:4:3", + "referencedDeclaration": 1134, + "src": "10629:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1634, + "id": 1706, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1631, + "id": 1703, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10645:5:3", + "referencedDeclaration": 1141, + "src": "10649:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1633, + "id": 1705, "indexExpression": { - "argumentTypes": null, - "id": 1632, + "id": 1704, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10651:6:3", + "referencedDeclaration": 1692, + "src": "10655:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15094,47 +14845,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "10645:13:3", + "src": "10649:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "10625:33:3" + "src": "10629:33:3" }, { "expression": { - "argumentTypes": null, - "id": 1639, + "id": 1711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1635, + "id": 1707, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10668:4:3", + "referencedDeclaration": 1702, + "src": "10672:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1637, + "id": 1709, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10668:13:3", + "referencedDeclaration": 1131, + "src": "10672:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15143,49 +14891,45 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1638, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10684:5:3", - "subdenomination": null, + "src": "10688:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "10668:21:3", + "src": "10672:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1640, + "id": 1712, "nodeType": "ExpressionStatement", - "src": "10668:21:3" + "src": "10672:21:3" }, { "expression": { - "argumentTypes": null, - "id": 1646, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1641, + "id": 1713, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10699:18:3", + "referencedDeclaration": 1143, + "src": "10703:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15194,20 +14938,17 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "31", - "id": 1644, + "id": 1716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10743:1:3", - "subdenomination": null, + "src": "10747:1:3", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -15223,33 +14964,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1642, + "id": 1714, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "10720:18:3", + "referencedDeclaration": 1143, + "src": "10724:18:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1643, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 4134, - "src": "10720:22:3", + "referencedDeclaration": 3664, + "src": "10724:22:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1645, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": false, @@ -15257,108 +14997,102 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10720:25:3", + "src": "10724:25:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10699:46:3", + "src": "10703:46:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1647, + "id": 1719, "nodeType": "ExpressionStatement", - "src": "10699:46:3" + "src": "10703:46:3" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1649, + "id": 1721, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10778:4:3", + "referencedDeclaration": 1702, + "src": "10782:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1650, + "id": 1722, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "id", "nodeType": "MemberAccess", - "referencedDeclaration": 1074, - "src": "10778:7:3", + "referencedDeclaration": 1123, + "src": "10782:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1651, + "id": 1723, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10787:4:3", + "referencedDeclaration": 1702, + "src": "10791:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1652, + "id": 1724, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "10787:16:3", + "referencedDeclaration": 1127, + "src": "10791:16:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1653, + "id": 1725, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "10805:4:3", + "referencedDeclaration": 1702, + "src": "10809:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team storage pointer" } }, - "id": 1654, + "id": 1726, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "10805:13:3", + "referencedDeclaration": 1131, + "src": "10809:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15380,18 +15114,18 @@ "typeString": "bool" } ], - "id": 1648, + "id": 1720, "name": "TeamStatusUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "10760:17:3", + "referencedDeclaration": 1186, + "src": "10764:17:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_bool_$returns$__$", "typeString": "function (uint256,address,bool)" } }, - "id": 1655, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, @@ -15399,103 +15133,106 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10760:59:3", + "src": "10764:59:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1656, + "id": 1728, "nodeType": "EmitStatement", - "src": "10755:64:3" + "src": "10759:64:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1658, + "documentation": { + "id": 1690, + "nodeType": "StructuredDocumentation", + "src": "10493:31:3", + "text": "@dev internal implementation" + }, + "id": 1730, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1623, + "id": 1695, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10584:6:3", + "referencedDeclaration": 1692, + "src": "10588:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1624, + "id": 1696, "modifierName": { - "argumentTypes": null, - "id": 1622, + "id": 1694, "name": "validTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "10572:11:3", + "referencedDeclaration": 1237, + "src": "10576:11:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10572:19:3" + "src": "10576:19:3" }, { "arguments": [ { - "argumentTypes": null, - "id": 1626, + "id": 1698, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "10607:6:3", + "referencedDeclaration": 1692, + "src": "10611:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1627, + "id": 1699, "modifierName": { - "argumentTypes": null, - "id": 1625, + "id": 1697, "name": "teamIsApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "10592:14:3", + "referencedDeclaration": 1250, + "src": "10596:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_uint256_$", "typeString": "modifier (uint256)" } }, "nodeType": "ModifierInvocation", - "src": "10592:22:3" + "src": "10596:22:3" } ], "name": "_reproveTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 1621, + "id": 1693, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1620, + "id": 1692, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1658, - "src": "10547:14:3", + "scope": 1730, + "src": "10551:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15503,62 +15240,58 @@ "typeString": "uint256" }, "typeName": { - "id": 1619, + "id": 1691, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10547:7:3", + "src": "10551:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "10546:16:3" + "src": "10550:16:3" }, "returnParameters": { - "id": 1628, + "id": 1700, "nodeType": "ParameterList", "parameters": [], - "src": "10615:0:3" + "src": "10619:0:3" }, - "scope": 1698, - "src": "10525:301:3", + "scope": 1772, + "src": "10529:301:3", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1671, + "id": 1744, "nodeType": "Block", - "src": "10936:47:3", + "src": "10940:47:3", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1668, + "id": 1741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1665, + "id": 1738, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "10954:6:3", + "referencedDeclaration": 1733, + "src": "10958:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15567,79 +15300,82 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1666, + "id": 1739, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "10963:5:3", + "referencedDeclaration": 1141, + "src": "10967:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1667, + "id": 1740, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10963:12:3", + "src": "10967:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10954:21:3", + "src": "10958:21:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1669, + "id": 1742, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10953:23:3", + "src": "10957:23:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1664, - "id": 1670, + "functionReturnParameters": 1737, + "id": 1743, "nodeType": "Return", - "src": "10946:30:3" + "src": "10950:30:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1672, + "documentation": { + "id": 1731, + "nodeType": "StructuredDocumentation", + "src": "10836:31:3", + "text": "@dev internal implementation" + }, + "id": 1745, "implemented": true, "kind": "function", "modifiers": [], "name": "isValidTeamId", "nodeType": "FunctionDefinition", "parameters": { - "id": 1661, + "id": 1734, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1660, + "id": 1733, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "10891:14:3", + "scope": 1745, + "src": "10895:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15647,32 +15383,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1659, + "id": 1732, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10891:7:3", + "src": "10895:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "10890:16:3" + "src": "10894:16:3" }, "returnParameters": { - "id": 1664, + "id": 1737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1663, + "id": 1736, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1672, - "src": "10930:4:3", + "scope": 1745, + "src": "10934:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15680,37 +15416,35 @@ "typeString": "bool" }, "typeName": { - "id": 1662, + "id": 1735, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10930:4:3", + "src": "10934:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "10929:6:3" + "src": "10933:6:3" }, - "scope": 1698, - "src": "10868:115:3", + "scope": 1772, + "src": "10872:115:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1696, + "id": 1770, "nodeType": "Block", - "src": "11094:154:3", + "src": "11098:154:3", "statements": [ { "condition": { - "argumentTypes": null, - "id": 1682, + "id": 1756, "isConstant": false, "isLValue": false, "isPure": false, @@ -15718,18 +15452,16 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "11108:22:3", + "src": "11112:22:3", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1680, + "id": 1754, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "11123:6:3", + "referencedDeclaration": 1748, + "src": "11127:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15743,18 +15475,18 @@ "typeString": "uint256" } ], - "id": 1679, + "id": 1753, "name": "isValidTeamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "11109:13:3", + "referencedDeclaration": 1745, + "src": "11113:13:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, - "id": 1681, + "id": 1755, "isConstant": false, "isLValue": false, "isPure": false, @@ -15762,7 +15494,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11109:21:3", + "src": "11113:21:3", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15773,99 +15506,92 @@ "typeString": "bool" } }, - "falseBody": null, - "id": 1686, + "id": 1760, "nodeType": "IfStatement", - "src": "11104:65:3", + "src": "11108:65:3", "trueBody": { - "id": 1685, + "id": 1759, "nodeType": "Block", - "src": "11132:37:3", + "src": "11136:37:3", "statements": [ { "expression": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1683, + "id": 1757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "11153:5:3", - "subdenomination": null, + "src": "11157:5:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 1678, - "id": 1684, + "functionReturnParameters": 1752, + "id": 1758, "nodeType": "Return", - "src": "11146:12:3" + "src": "11150:12:3" } ] } }, { - "assignments": [1688], + "assignments": [1762], "declarations": [ { "constant": false, - "id": 1688, + "id": 1762, + "mutability": "mutable", "name": "team", "nodeType": "VariableDeclaration", - "scope": 1696, - "src": "11179:16:3", + "scope": 1770, + "src": "11183:16:3", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team" }, "typeName": { - "contractScope": null, - "id": 1687, + "id": 1761, "name": "Team", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1085, - "src": "11179:4:3", + "referencedDeclaration": 1134, + "src": "11183:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage_ptr", + "typeIdentifier": "t_struct$_Team_$1134_storage_ptr", "typeString": "struct ContestTeamRegistry.Team" } }, - "value": null, "visibility": "internal" } ], - "id": 1692, + "id": 1766, "initialValue": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1689, + "id": 1763, "name": "teams", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "11198:5:3", + "referencedDeclaration": 1141, + "src": "11202:5:3", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Team_$1085_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Team_$1134_storage_$dyn_storage", "typeString": "struct ContestTeamRegistry.Team storage ref[] storage ref" } }, - "id": 1691, + "id": 1765, "indexExpression": { - "argumentTypes": null, - "id": 1690, + "id": 1764, "name": "teamId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "11204:6:3", + "referencedDeclaration": 1748, + "src": "11208:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15876,70 +15602,74 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "11198:13:3", + "src": "11202:13:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "11179:32:3" + "src": "11183:32:3" }, { "expression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1693, + "id": 1767, "name": "team", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1688, - "src": "11228:4:3", + "referencedDeclaration": 1762, + "src": "11232:4:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_memory_ptr", + "typeIdentifier": "t_struct$_Team_$1134_memory_ptr", "typeString": "struct ContestTeamRegistry.Team memory" } }, - "id": 1694, + "id": 1768, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "approved", "nodeType": "MemberAccess", - "referencedDeclaration": 1082, - "src": "11228:13:3", + "referencedDeclaration": 1131, + "src": "11232:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1678, - "id": 1695, + "functionReturnParameters": 1752, + "id": 1769, "nodeType": "Return", - "src": "11221:20:3" + "src": "11225:20:3" } ] }, - "documentation": "@dev internal implementation", - "id": 1697, + "documentation": { + "id": 1746, + "nodeType": "StructuredDocumentation", + "src": "10993:31:3", + "text": "@dev internal implementation" + }, + "id": 1771, "implemented": true, "kind": "function", "modifiers": [], "name": "isTeamApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 1675, + "id": 1749, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1674, + "id": 1748, + "mutability": "mutable", "name": "teamId", "nodeType": "VariableDeclaration", - "scope": 1697, - "src": "11049:14:3", + "scope": 1771, + "src": "11053:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15947,32 +15677,32 @@ "typeString": "uint256" }, "typeName": { - "id": 1673, + "id": 1747, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11049:7:3", + "src": "11053:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "11048:16:3" + "src": "11052:16:3" }, "returnParameters": { - "id": 1678, + "id": 1752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1677, + "id": 1751, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 1697, - "src": "11088:4:3", + "scope": 1771, + "src": "11092:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15980,43 +15710,60 @@ "typeString": "bool" }, "typeName": { - "id": 1676, + "id": 1750, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "11088:4:3", + "src": "11092:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "11087:6:3" + "src": "11091:6:3" }, - "scope": 1698, - "src": "11025:223:3", + "scope": 1772, + "src": "11029:223:3", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 1699, - "src": "631:10619:3" + "scope": 1773, + "src": "671:10583:3" } ], - "src": "0:11251:3" + "src": "40:11215:3" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.457Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.036Z", "devdoc": { "details": "TODO: {registerTeam} to create ContestTeam contracts on blockchain and storage contract's address as {teamAddress} on Team struct. Future improvements: TODO: Add struct to identify team members. TODO: Possibility to request a msg.value for members to signup for contest. TODO: Ability to refund members once they show up to contest. TODO: Add mapping for team members.", + "events": { + "RegistrationStatusUpdated(bool)": { + "details": "emitted when a the registration process is updated. See {openRegistration()} and {closeRegistration()}" + }, + "SubmissionStatusUpdated(bool)": { + "details": "emitted when a the submission process is updated. See {openSubmission()} and {closeSubmission()}" + }, + "TeamProposalUpdated(uint256,address,bytes32)": { + "details": "emitted when a team's proposal data is updated. See {updateProposalData}" + }, + "TeamRegistered(uint256,bytes32,address,bool)": { + "details": "emitted when a new team is registered" + }, + "TeamStatusUpdated(uint256,address,bool)": { + "details": "emitted when a team's status is updated. See {approveTeam} and {reproveTeam}" + } + }, + "kind": "dev", "methods": { "approveTeam(uint256)": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control.", @@ -16030,26 +15777,39 @@ "closeSubmission()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." }, - "constructor": { - "details": "This class needs to be inherited." - }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "openRegistration()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -16081,9 +15841,11 @@ "teamId": "team's unique identifier; required" } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "approveTeam(uint256)": { "notice": "(re)approves a team in participating in the contest" @@ -16125,6 +15887,7 @@ "notice": "Updates the proposal data for a specific team." } }, - "notice": "Controls the registration of teams and the subsequent proposal submission process of the teams participating in a contest." + "notice": "Controls the registration of teams and the subsequent proposal submission process of the teams participating in a contest.", + "version": 1 } } diff --git a/build/contracts/ContestTeamRegistryMock.json b/build/contracts/ContestTeamRegistryMock.json index ce5fbe9..05482ed 100644 --- a/build/contracts/ContestTeamRegistryMock.json +++ b/build/contracts/ContestTeamRegistryMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -115,7 +114,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -125,30 +123,24 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -158,12 +150,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -173,12 +163,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -214,12 +202,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -255,30 +241,24 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -304,12 +284,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -319,12 +297,10 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -334,12 +310,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -380,12 +354,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -400,12 +372,10 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getApprovedTeamsCount", "outputs": [ @@ -415,176 +385,177 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getApprovedTeamsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"openRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}}},\"userdoc\":{\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol\":\"ContestTeamRegistryMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol\":{\"keccak256\":\"0xa6364c08f026c54b91444a72401b90830090ac9b22edd2c7680463e76e61af41\",\"urls\":[\"bzz-raw://543cc1fa2fb6075edf8903ceeec3efaf15c6813360ee4e21cbb043895d1c31ae\",\"dweb:/ipfs/QmeZxFK1NtuoDNZ7Esh9ojX7hH53jdNTDjMkv6H41odtip\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506111a3806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c80637385712c11610097578063e35fb24111610066578063e35fb241146102da578063eaf2f9cd146102e2578063f540548b14610305578063ffc6ff1e14610322576100f4565b80637385712c1461027e5780637dc673bc146102c2578063b103b43a146102ca578063d06e4ee7146102d2576100f4565b80633ed2b77a116100d35780633ed2b77a146101da5780634ea701a81461023457806354e1db2b1461025a57806358e2f50e14610276576100f4565b80628e0f1b146100f957806324ba9fab1461014b578063288c4a461461016a575b600080fd5b6101166004803603602081101561010f57600080fd5b503561032a565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b6101686004803603602081101561016157600080fd5b5035610414565b005b6101686004803603602081101561018057600080fd5b81019060208101813564010000000081111561019b57600080fd5b8201836020820111156101ad57600080fd5b803590602001918460208302840111640100000000831117156101cf57600080fd5b509092509050610420565b6101f7600480360360208110156101f057600080fd5b5035610460565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6101166004803603602081101561024a57600080fd5b50356001600160a01b03166104b3565b61026261058e565b604080519115158252519081900360200190f35b61016861059c565b6102b06004803603606081101561029457600080fd5b508035906001600160a01b0360208201351690604001356105f8565b60408051918252519081900360200190f35b6101686109d6565b6102b0610a2e565b610168610a34565b610262610a8b565b610168600480360360408110156102f857600080fd5b5080359060200135610a94565b6101686004803603602081101561031b57600080fd5b5035610c00565b610168610c09565b60008060008060008561033c81610c64565b61037f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610387611139565b6001888154811061039457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61041d81610c6f565b50565b61045c828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610db192505050565b5050565b6001818154811061046d57fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000808080806001600160a01b03861661050b576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b610513611139565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b600354610100900460ff16156105ee576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b6105f6610de1565b565b60035460009060ff1661064b576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166106ad576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610708576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610778576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154610783611139565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106108eb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546109829163ffffffff610e3116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16610a26576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6105f6610e92565b60025490565b60035460ff1615610a83576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6105f6610ed2565b60035460ff1690565b81610a9e81610c64565b610ae1576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82610aeb81610f1c565b610b33576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16610b86576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b600060018581548110610b9557fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b61041d81610fb6565b600354610100900460ff16610c5c576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6105f6611091565b60015481105b919050565b80610c7981610c64565b610cbc576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610cc681610f1c565b15610d10576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110610d1f57fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250610d58919063ffffffff610e3116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b815181101561045c57610dd9828281518110610dcc57fe5b6020026020010151610fb6565b600101610db4565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082820183811015610e8b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6000610f2782610c64565b610f3357506000610c6a565b610f3b611139565b60018381548110610f4857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b80610fc081610c64565b611003576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161100d81610f1c565b611055576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061106457fe5b6000918252602090912060069091020160048101805460ff19169055600254909150610d589060016110dc565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082821115611133576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fea265627a7a7231582031d1c928a6b6da5ef744c323df9dc0229d839bf1ca1da719ed4b4434eea9cfe664736f6c634300050c0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f45760003560e01c80637385712c11610097578063e35fb24111610066578063e35fb241146102da578063eaf2f9cd146102e2578063f540548b14610305578063ffc6ff1e14610322576100f4565b80637385712c1461027e5780637dc673bc146102c2578063b103b43a146102ca578063d06e4ee7146102d2576100f4565b80633ed2b77a116100d35780633ed2b77a146101da5780634ea701a81461023457806354e1db2b1461025a57806358e2f50e14610276576100f4565b80628e0f1b146100f957806324ba9fab1461014b578063288c4a461461016a575b600080fd5b6101166004803603602081101561010f57600080fd5b503561032a565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b6101686004803603602081101561016157600080fd5b5035610414565b005b6101686004803603602081101561018057600080fd5b81019060208101813564010000000081111561019b57600080fd5b8201836020820111156101ad57600080fd5b803590602001918460208302840111640100000000831117156101cf57600080fd5b509092509050610420565b6101f7600480360360208110156101f057600080fd5b5035610460565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6101166004803603602081101561024a57600080fd5b50356001600160a01b03166104b3565b61026261058e565b604080519115158252519081900360200190f35b61016861059c565b6102b06004803603606081101561029457600080fd5b508035906001600160a01b0360208201351690604001356105f8565b60408051918252519081900360200190f35b6101686109d6565b6102b0610a2e565b610168610a34565b610262610a8b565b610168600480360360408110156102f857600080fd5b5080359060200135610a94565b6101686004803603602081101561031b57600080fd5b5035610c00565b610168610c09565b60008060008060008561033c81610c64565b61037f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610387611139565b6001888154811061039457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61041d81610c6f565b50565b61045c828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610db192505050565b5050565b6001818154811061046d57fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000808080806001600160a01b03861661050b576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b610513611139565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b600354610100900460ff16156105ee576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b6105f6610de1565b565b60035460009060ff1661064b576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166106ad576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316610708576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615610778576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154610783611139565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106108eb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546109829163ffffffff610e3116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16610a26576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6105f6610e92565b60025490565b60035460ff1615610a83576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6105f6610ed2565b60035460ff1690565b81610a9e81610c64565b610ae1576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82610aeb81610f1c565b610b33576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16610b86576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b600060018581548110610b9557fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b61041d81610fb6565b600354610100900460ff16610c5c576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6105f6611091565b60015481105b919050565b80610c7981610c64565b610cbc576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610cc681610f1c565b15610d10576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110610d1f57fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250610d58919063ffffffff610e3116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b815181101561045c57610dd9828281518110610dcc57fe5b6020026020010151610fb6565b600101610db4565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082820183811015610e8b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6000610f2782610c64565b610f3357506000610c6a565b610f3b611139565b60018381548110610f4857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b80610fc081610c64565b611003576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161100d81610f1c565b611055576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061106457fe5b6000918252602090912060069091020160048101805460ff19169055600254909150610d589060016110dc565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082821115611133576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fea265627a7a7231582031d1c928a6b6da5ef744c323df9dc0229d839bf1ca1da719ed4b4434eea9cfe664736f6c634300050c0032", - "sourceMap": "68:223:12:-;;;130:45;8:9:-1;5:2;;;30:1;27;20:12;5:2;130:45:12;68:223;;;;;;", - "deployedSourceMap": "68:223:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;68:223:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:293:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3439:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3439:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8416:83;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8416:83:3;;:::i;:::-;;8791:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8791:98:3;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8791:98:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8791:98:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8791:98:3;;-1:-1:-1;8791:98:3;-1:-1:-1;8791:98:3;:::i;1103:19::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4172:332;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4172:332:3;-1:-1:-1;;;;;4172:332:3;;:::i;8042:101::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;7819:88;;;:::i;4887:1108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4887:1108:3;;;-1:-1:-1;;;;;4887:1108:3;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6734:94;;;:::i;181:107:12:-;;;:::i;7012:94:3:-;;;:::i;7243:105::-;;;:::i;6206:343::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6206:343:3;;;;;;;:::i;9160:83::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9160:83:3;;:::i;7540:88::-;;;:::i;3439:293::-;3545:7;3554;3563;3572:4;3578:7;3520:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;3601:16;;:::i;:::-;3620:5;3626:6;3620:13;;;;;;;;;;;;;;;;;3601:32;;;;;;;;3620:13;;;;;;;;3601:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3601:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;-1:-1:-1;3439:293:3;-1:-1:-1;;;;3439:293:3:o;8416:83::-;8472:20;8485:6;8472:12;:20::i;:::-;8416:83;:::o;8791:98::-;8860:22;8874:7;;8860:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8860:13:3;;-1:-1:-1;;;8860:22:3:i;:::-;8791:98;;:::o;1103:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1103:19:3;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;:::o;4172:332::-;4240:7;;;;;-1:-1:-1;;;;;4300:25:3;;4292:58;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;;;;4360:16;;:::i;:::-;-1:-1:-1;;;;;;;;;4379:26:3;;;:13;:26;;;;;;;;;;;;4360:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4360:45:3;-1:-1:-1;4360:45:3;4172:332::o;8042:101::-;8119:17;;;;;;;;8042:101::o;7819:88::-;2513:17;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;7883:17;:15;:17::i;:::-;7819:88::o;4887:1108::-;2163:19;;5031:7;;2163:19;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;5062:8;5071:1;5062:11;;;-1:-1:-1;;;;;;5062:16:3;5054:54;;;;;-1:-1:-1;;;5054:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:25:3;;5118:65;;;;;-1:-1:-1;;;5118:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5201:26:3;;;5251:1;5201:26;;;;;;;;;;:38;;;;:52;5193:88;;;;;-1:-1:-1;;;5193:88:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:5;:12;5688:16;;:::i;:::-;-1:-1:-1;5707:58:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5707:58:3;;;;;;;;;;;;;;;5757:4;5707:58;;;;;;-1:-1:-1;5707:58:3;;;;;;27:10:-1;;23:18;;;45:23;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5775:16:3;;;;;;;;;;;;;;;;;;;;5830:13;;5707:58;;5757:4;5707:58;;5830:13;;;;;;;;;;;;;;-1:-1:-1;;;;;5801:26:3;;;;;;;;;;;;;5830:13;;;;;;;5801:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5801:42:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5801:42:3;;;;;;;;;;;;;;;;;;;5874:18;;:25;;;:22;:25;:::i;:::-;5853:18;:46;5914:51;;;;;;5960:4;5914:51;;;;;;-1:-1:-1;;;;;5914:51:3;;;5929:6;;5914:51;;;;;;;;;;;-1:-1:-1;5982:6:3;4887:1108;-1:-1:-1;;;;4887:1108:3:o;6734:94::-;2163:19;;;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;6801:20;:18;:20::i;181:107:12:-;263:18;;181:107;:::o;7012:94:3:-;2284:19;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;7080:19;:17;:19::i;7243:105::-;7322:19;;;;7243:105;:::o;6206:343::-;6309:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;6340:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;2398:17;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;6387:17;6407:5;6413:6;6407:13;;;;;;;;;;;;;;;;;6430:17;6407:13;;;;;6430:17;;;:32;;;6506:16;;;;6497:7;;6477:65;;;;;;;;6407:13;;-1:-1:-1;;;;;;6506:16:3;;;;6497:7;;6477:65;;;;;;;;;;2450:1;2683;6206:343;;;:::o;9160:83::-;9216:20;9229:6;9216:12;:20::i;7540:88::-;2398:17;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;7603:18;:16;:18::i;10868:115::-;10963:5;:12;10954:21;;10868:115;;;;:::o;9973:300::-;10032:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10055:6;2885:22;2900:6;2885:14;:22::i;:::-;2884:23;2876:57;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;;;;10073:17;10093:5;10099:6;10093:13;;;;;;;;;;;;;;;;10116;10093;;;;;10116;;;:20;;-1:-1:-1;;10116:20:3;10132:4;10116:20;;;;;;10167:18;;10093:13;;-1:-1:-1;10167:25:3;;:18;:25;:22;:25;:::i;:::-;10146:18;:46;;;10234:16;;;10225:7;;10252:13;;;;10207:59;;;10252:13;;;;10207:59;;;;;-1:-1:-1;;;;;10234:16:3;;;;10207:59;;;;;;;;;2943:1;2683;9973:300;;:::o;10315:168::-;10388:9;10383:94;10407:7;:14;10403:1;:18;10383:94;;;10442:24;10455:7;10463:1;10455:10;;;;;;;;;;;;;;10442:12;:24::i;:::-;10423:3;;10383:94;;9797:134;9843:17;:24;;-1:-1:-1;;9843:24:3;;;;;;;;;9882:42;;;9906:17;;;;9843:24;9906:17;9882:42;;;;;;;;;;;;;;;9797:134::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;9285:144:3:-;9334:19;:27;;-1:-1:-1;;9334:27:3;;;9376:46;;;9356:5;9376:46;;;;;;;;;;;;;9285:144::o;9471:142::-;9519:19;:26;;-1:-1:-1;;9519:26:3;9541:4;9519:26;;;;;9560:46;;;9519:26;9586:19;;;;9560:46;;;;;;;;;;;;;;9471:142::o;11025:223::-;11088:4;11109:21;11123:6;11109:13;:21::i;:::-;11104:65;;-1:-1:-1;11153:5:3;11146:12;;11104:65;11179:16;;:::i;:::-;11198:5;11204:6;11198:13;;;;;;;;;;;;;;;;;11179:32;;;;;;;;11198:13;;;;;;;11179:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11025:223:3;;;:::o;10525:301::-;10584:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10607:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;10625:17;10645:5;10651:6;10645:13;;;;;;;;;;;;;;;;;;;;;10668;;;:21;;-1:-1:-1;;10668:21:3;;;10720:18;;10645:13;;-1:-1:-1;10720:25:3;;-1:-1:-1;10720:22:3;:25::i;9619:136::-;9666:17;:25;;-1:-1:-1;;9666:25:3;;;;;9706:42;;;9666:25;9730:17;;;9666:25;9730:17;9706:42;;;;;;;;;;;;;;9619:136::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;68:223:12:-;;;;;;;;;-1:-1:-1;68:223:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../core/ContestTeamRegistry.sol\";\n\ncontract ContestTeamRegistryMock is ContestTeamRegistry {\n constructor() public ContestTeamRegistry() {}\n\n function getApprovedTeamsCount() external view returns (uint256) {\n return approvedTeamsCount;\n }\n\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getApprovedTeamsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"openRegistration()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol\":\"ContestTeamRegistryMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol\":{\"keccak256\":\"0x21893b0d0dd6558809b45d9d848697ee3b40c31b229a8154cb7dfb714c9d4c50\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://221388c2f5ec4655f0ee4822b8f6554973ce9c59887520a0b242a32fa0491d75\",\"dweb:/ipfs/QmdDgaYyVXMShNeVT5yRHGKgbScL4jPVi96HKqf1sGxwf4\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506111bc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f45760003560e01c80637385712c11610097578063e35fb24111610066578063e35fb241146102da578063eaf2f9cd146102e2578063f540548b14610305578063ffc6ff1e14610322576100f4565b80637385712c1461027e5780637dc673bc146102c2578063b103b43a146102ca578063d06e4ee7146102d2576100f4565b80633ed2b77a116100d35780633ed2b77a146101da5780634ea701a81461023457806354e1db2b1461025a57806358e2f50e14610276576100f4565b80628e0f1b146100f957806324ba9fab1461014b578063288c4a461461016a575b600080fd5b6101166004803603602081101561010f57600080fd5b503561032a565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b6101686004803603602081101561016157600080fd5b503561040e565b005b6101686004803603602081101561018057600080fd5b81019060208101813564010000000081111561019b57600080fd5b8201836020820111156101ad57600080fd5b803590602001918460208302840111640100000000831117156101cf57600080fd5b50909250905061041a565b6101f7600480360360208110156101f057600080fd5b503561045a565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6101166004803603602081101561024a57600080fd5b50356001600160a01b03166104b0565b610262610581565b604080519115158252519081900360200190f35b61016861058f565b6102b06004803603606081101561029457600080fd5b508035906001600160a01b0360208201351690604001356105eb565b60408051918252519081900360200190f35b6101686109b8565b6102b0610a10565b610168610a16565b610262610a6d565b610168600480360360408110156102f857600080fd5b5080359060200135610a76565b6101686004803603602081101561031b57600080fd5b5035610be2565b610168610beb565b60008060008060008561033c81610c46565b61037f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061038e57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61041781610c51565b50565b610456828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610d8d92505050565b5050565b6001818154811061046a57600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000808080806001600160a01b038616610508576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b600354610100900460ff16156105e1576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b6105e9610dbd565b565b60035460009060ff1661063e576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166106a0576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166106fb576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b03838116600090815260208190526040902060020154161561076b576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106108d357fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461096491610e0d565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16610a08576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6105e9610e6e565b60025490565b60035460ff1615610a65576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6105e9610eae565b60035460ff1690565b81610a8081610c46565b610ac3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82610acd81610ef8565b610b15576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16610b68576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b600060018581548110610b7757fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b61041781610f8c565b600354610100900460ff16610c3e576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6105e9611067565b60015481105b919050565b80610c5b81610c46565b610c9e576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610ca881610ef8565b15610cf2576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110610d0157fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250610d349190610e0d565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b815181101561045657610db5828281518110610da857fe5b6020026020010151610f8c565b600101610d90565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082820183811015610e67576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6000610f0382610c46565b610f0f57506000610c4c565b600060018381548110610f1e57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b80610f9681610c46565b610fd9576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610fe381610ef8565b61102b576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061103a57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150610d349060016110b2565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6000610e6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506000818484111561117e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561114357818101518382015260200161112b565b50505050905090810190601f1680156111705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220de9f9ddd47e29ba3fe4f21055aa1ba474be49bfb2dc47b5c8f25c6083e6a9b9d64736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f45760003560e01c80637385712c11610097578063e35fb24111610066578063e35fb241146102da578063eaf2f9cd146102e2578063f540548b14610305578063ffc6ff1e14610322576100f4565b80637385712c1461027e5780637dc673bc146102c2578063b103b43a146102ca578063d06e4ee7146102d2576100f4565b80633ed2b77a116100d35780633ed2b77a146101da5780634ea701a81461023457806354e1db2b1461025a57806358e2f50e14610276576100f4565b80628e0f1b146100f957806324ba9fab1461014b578063288c4a461461016a575b600080fd5b6101166004803603602081101561010f57600080fd5b503561032a565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b6101686004803603602081101561016157600080fd5b503561040e565b005b6101686004803603602081101561018057600080fd5b81019060208101813564010000000081111561019b57600080fd5b8201836020820111156101ad57600080fd5b803590602001918460208302840111640100000000831117156101cf57600080fd5b50909250905061041a565b6101f7600480360360208110156101f057600080fd5b503561045a565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b6101166004803603602081101561024a57600080fd5b50356001600160a01b03166104b0565b610262610581565b604080519115158252519081900360200190f35b61016861058f565b6102b06004803603606081101561029457600080fd5b508035906001600160a01b0360208201351690604001356105eb565b60408051918252519081900360200190f35b6101686109b8565b6102b0610a10565b610168610a16565b610262610a6d565b610168600480360360408110156102f857600080fd5b5080359060200135610a76565b6101686004803603602081101561031b57600080fd5b5035610be2565b610168610beb565b60008060008060008561033c81610c46565b61037f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061038e57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b61041781610c51565b50565b610456828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250610d8d92505050565b5050565b6001818154811061046a57600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b6000808080806001600160a01b038616610508576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b600354610100900460ff16156105e1576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b6105e9610dbd565b565b60035460009060ff1661063e576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166106a0576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166106fb576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b03838116600090815260208190526040902060020154161561076b576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106108d357fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461096491610e0d565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16610a08576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6105e9610e6e565b60025490565b60035460ff1615610a65576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b6105e9610eae565b60035460ff1690565b81610a8081610c46565b610ac3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82610acd81610ef8565b610b15576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16610b68576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b600060018581548110610b7757fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b61041781610f8c565b600354610100900460ff16610c3e576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6105e9611067565b60015481105b919050565b80610c5b81610c46565b610c9e576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610ca881610ef8565b15610cf2576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b600060018481548110610d0157fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250610d349190610e0d565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b815181101561045657610db5828281518110610da857fe5b6020026020010151610f8c565b600101610d90565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b600082820183811015610e67576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6000610f0382610c46565b610f0f57506000610c4c565b600060018381548110610f1e57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b80610f9681610c46565b610fd9576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81610fe381610ef8565b61102b576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b60006001848154811061103a57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150610d349060016110b2565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6000610e6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506000818484111561117e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561114357818101518382015260200161112b565b50505050905090810190601f1680156111705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fea2646970667358221220de9f9ddd47e29ba3fe4f21055aa1ba474be49bfb2dc47b5c8f25c6083e6a9b9d64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "116:216:12:-:0;;;178:38;;;;;;;;;;116:216;;;;;;", + "deployedSourceMap": "116:216:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:293:3;;;;;;;;;;;;;;;;-1:-1:-1;3411:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8420:83;;;;;;;;;;;;;;;;-1:-1:-1;8420:83:3;;:::i;:::-;;8795:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8795:98:3;;-1:-1:-1;8795:98:3;-1:-1:-1;8795:98:3;:::i;1152:19::-;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4144:332;;;;;;;;;;;;;;;;-1:-1:-1;4144:332:3;-1:-1:-1;;;;;4144:332:3;;:::i;8046:101::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;7815:96;;;:::i;4859:1108::-;;;;;;;;;;;;;;;;-1:-1:-1;4859:1108:3;;;-1:-1:-1;;;;;4859:1108:3;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6706:102;;;:::i;222:107:12:-;;;:::i;6992:102:3:-;;;:::i;7231:105::-;;;:::i;6178:343::-;;;;;;;;;;;;;;;;-1:-1:-1;6178:343:3;;;;;;;:::i;9164:83::-;;;;;;;;;;;;;;;;-1:-1:-1;9164:83:3;;:::i;7528:96::-;;;:::i;3411:293::-;3517:7;3526;3535;3544:4;3550:7;3492:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;3573:16:::1;3592:5;3598:6;3592:13;;;;;;;;;::::0;;;::::1;::::0;;;;3573:32:::1;::::0;;::::1;::::0;::::1;::::0;;3592:13:::1;::::0;;;::::1;::::0;;::::1;3573:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3573:32:3::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;-1:-1:-1;3411:293:3;-1:-1:-1;;;;3411:293:3:o;8420:83::-;8476:20;8489:6;8476:12;:20::i;:::-;8420:83;:::o;8795:98::-;8864:22;8878:7;;8864:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8864:13:3;;-1:-1:-1;;;8864:22:3:i;:::-;8795:98;;:::o;1152:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;:::o;4144:332::-;4212:7;;;;;-1:-1:-1;;;;;4272:25:3;;4264:58;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4351:26:3;;;4332:16;4351:26;;;;;;;;;;;;4332:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4332:45:3;4144:332::o;8046:101::-;8123:17;;;;;;;;8046:101::o;7815:96::-;2562:17;;;;;;;2561:18;2553:49;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;;;7887:17:::1;:15;:17::i;:::-;7815:96::o:0;4859:1108::-;2212:19;;5003:7;;2212:19;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;5034:8;5043:1:::1;5034:11;;;-1:-1:-1::0;;;;;;5034:16:3::1;5026:54;;;::::0;;-1:-1:-1;;;5026:54:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5098:25:3;::::1;5090:65;;;::::0;;-1:-1:-1;;;5090:65:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5173:26:3;;::::1;5223:1;5173:26:::0;;;::::1;::::0;;;;;;:38:::1;;::::0;::::1;:52:::0;5165:88:::1;;;::::0;;-1:-1:-1;;;5165:88:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5280:5;:12:::0;;5679:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5679:58:3;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;5679:58:3;;;;;;5747:16;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5747:16:3::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;-1:-1:-1;;5747:16:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;5802:13;;5280:12;;5679:58;;5280:12;;5802:13;::::1;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;5773:26:3;;::::1;::::0;;;;;;;;;;5802:13:::1;::::0;;::::1;::::0;;::::1;5773:42:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;5773:42:3::1;::::0;;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;5773:42:3;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;5846:18;;:25:::1;::::0;:22:::1;:25::i;:::-;5825:18;:46:::0;5886:51:::1;::::0;;;;;5932:4:::1;5886:51;::::0;::::1;::::0;;;-1:-1:-1;;;;;5886:51:3;::::1;::::0;5901:6;;5886:51:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;5954:6:3;4859:1108;-1:-1:-1;;;;4859:1108:3:o;6706:102::-;2212:19;;;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;6781:20:::1;:18;:20::i;222:107:12:-:0;304:18;;222:107;:::o;6992:102:3:-;2333:19;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;7068:19:::1;:17;:19::i;7231:105::-:0;7310:19;;;;7231:105;:::o;6178:343::-;6281:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;6312:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;2447:17:::2;::::0;::::2;::::0;::::2;;;2439:50;;;::::0;;-1:-1:-1;;;2439:50:3;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;::::2;;6359:17:::3;6379:5;6385:6;6379:13;;;;;;;;;::::0;;;::::3;::::0;;;;6402:17:::3;6379:13;::::0;;::::3;;6402:17:::0;;::::3;:32:::0;;;6478:16:::3;::::0;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;6379:13;;-1:-1:-1;;;;;;6478:16:3;;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;;::::3;2499:1;2732::::1;6178:343:::0;;;:::o;9164:83::-;9220:20;9233:6;9220:12;:20::i;7528:96::-;2447:17;;;;;;;2439:50;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;;;7599:18:::1;:16;:18::i;10872:115::-:0;10967:5;:12;10958:21;;10872:115;;;;:::o;9977:300::-;10036:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10059:6:::1;2934:22;2949:6;2934:14;:22::i;:::-;2933:23;2925:57;;;::::0;;-1:-1:-1;;;2925:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2925:57:3;;;;;;;;;;;;;::::1;;10077:17:::2;10097:5;10103:6;10097:13;;;;;;;;;::::0;;;::::2;::::0;;;10120::::2;10097;::::0;;::::2;;10120::::0;;::::2;:20:::0;;-1:-1:-1;;10120:20:3::2;10136:4;10120:20:::0;;::::2;::::0;;;10171:18:::2;::::0;10097:13;;-1:-1:-1;10171:25:3::2;::::0;:18;:22:::2;:25::i;:::-;10150:18;:46:::0;;;10238:16;::::2;::::0;10229:7;;10256:13:::2;::::0;::::2;::::0;10211:59:::2;::::0;;10256:13:::2;::::0;;::::2;10211:59;;::::0;;;-1:-1:-1;;;;;10238:16:3;;::::2;::::0;10211:59:::2;::::0;;;;::::2;::::0;;::::2;2992:1;2732::::1;9977:300:::0;;:::o;10319:168::-;10392:9;10387:94;10411:7;:14;10407:1;:18;10387:94;;;10446:24;10459:7;10467:1;10459:10;;;;;;;;;;;;;;10446:12;:24::i;:::-;10427:3;;10387:94;;9801:134;9847:17;:24;;-1:-1:-1;;9847:24:3;;;;;;;;;9886:42;;;9910:17;;;;9847:24;9910:17;9886:42;;;;;;;;;;;;;;;9801:134::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;9289:144:3:-;9338:19;:27;;-1:-1:-1;;9338:27:3;;;9380:46;;;9360:5;9380:46;;;;;;;;;;;;;9289:144::o;9475:142::-;9523:19;:26;;-1:-1:-1;;9523:26:3;9545:4;9523:26;;;;;9564:46;;;9523:26;9590:19;;;;9564:46;;;;;;;;;;;;;;9475:142::o;11029:223::-;11092:4;11113:21;11127:6;11113:13;:21::i;:::-;11108:65;;-1:-1:-1;11157:5:3;11150:12;;11108:65;11183:16;11202:5;11208:6;11202:13;;;;;;;;;;;;;;;;;11183:32;;;;;;;;11202:13;;;;;;;11183:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11183:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11029:223:3;;;:::o;10529:301::-;10588:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10611:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;10629:17:::2;10649:5;10655:6;10649:13;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10672;::::0;::::2;:21:::0;;-1:-1:-1;;10672:21:3::2;::::0;;10724:18:::2;::::0;10649:13;;-1:-1:-1;10724:25:3::2;::::0;-1:-1:-1;10724:22:3::2;:25::i;9623:136::-:0;9670:17;:25;;-1:-1:-1;;9670:25:3;;;;;9710:42;;;9670:25;9734:17;;;9670:25;9734:17;9710:42;;;;;;;;;;;;;;9623:136::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../core/ContestTeamRegistry.sol\";\n\ncontract ContestTeamRegistryMock is ContestTeamRegistry {\n constructor() ContestTeamRegistry() {}\n\n function getApprovedTeamsCount() external view returns (uint256) {\n return approvedTeamsCount;\n }\n\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol", "exportedSymbols": { - "ContestTeamRegistryMock": [2656] + "ContestTeamRegistry": [1772], + "ContestTeamRegistryMock": [2767], + "SafeMath": [3814] }, - "id": 2657, + "id": 2768, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2638, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2749, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "40:31:12" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol", "file": "../core/ContestTeamRegistry.sol", - "id": 2639, + "id": 2750, "nodeType": "ImportDirective", - "scope": 2657, - "sourceUnit": 1699, - "src": "25:41:12", + "scope": 2768, + "sourceUnit": 1773, + "src": "73:41:12", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2640, + "id": 2751, "name": "ContestTeamRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1698, - "src": "104:19:12", + "referencedDeclaration": 1772, + "src": "152:19:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamRegistry_$1698", + "typeIdentifier": "t_contract$_ContestTeamRegistry_$1772", "typeString": "contract ContestTeamRegistry" } }, - "id": 2641, + "id": 2752, "nodeType": "InheritanceSpecifier", - "src": "104:19:12" + "src": "152:19:12" } ], - "contractDependencies": [1698], + "contractDependencies": [1772], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2656, - "linearizedBaseContracts": [2656, 1698], + "id": 2767, + "linearizedBaseContracts": [2767, 1772], "name": "ContestTeamRegistryMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2646, + "id": 2757, "nodeType": "Block", - "src": "173:2:12", + "src": "214:2:12", "statements": [] }, - "documentation": null, - "id": 2647, + "id": 2758, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2644, + "id": 2755, "modifierName": { - "argumentTypes": null, - "id": 2643, + "id": 2754, "name": "ContestTeamRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "151:19:12", + "referencedDeclaration": 1772, + "src": "192:19:12", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1698_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1772_$", "typeString": "type(contract ContestTeamRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "151:21:12" + "src": "192:21:12" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2642, + "id": 2753, "nodeType": "ParameterList", "parameters": [], - "src": "141:2:12" + "src": "189:2:12" }, "returnParameters": { - "id": 2645, + "id": 2756, "nodeType": "ParameterList", "parameters": [], - "src": "173:0:12" + "src": "214:0:12" }, - "scope": 2656, - "src": "130:45:12", + "scope": 2767, + "src": "178:38:12", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2654, + "id": 2765, "nodeType": "Block", - "src": "246:42:12", + "src": "287:42:12", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2652, + "id": 2763, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "263:18:12", + "referencedDeclaration": 1143, + "src": "304:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2651, - "id": 2653, + "functionReturnParameters": 2762, + "id": 2764, "nodeType": "Return", - "src": "256:25:12" + "src": "297:25:12" } ] }, - "documentation": null, - "id": 2655, + "functionSelector": "b103b43a", + "id": 2766, "implemented": true, "kind": "function", "modifiers": [], "name": "getApprovedTeamsCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2648, + "id": 2759, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:12" + "src": "252:2:12" }, "returnParameters": { - "id": 2651, + "id": 2762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2650, + "id": 2761, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2655, - "src": "237:7:12", + "scope": 2766, + "src": "278:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -592,192 +563,190 @@ "typeString": "uint256" }, "typeName": { - "id": 2649, + "id": 2760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "278:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "236:9:12" + "src": "277:9:12" }, - "scope": 2656, - "src": "181:107:12", + "scope": 2767, + "src": "222:107:12", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2657, - "src": "68:223:12" + "scope": 2768, + "src": "116:216:12" } ], - "src": "0:292:12" + "src": "40:293:12" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/ContestTeamRegistryMock.sol", "exportedSymbols": { - "ContestTeamRegistryMock": [2656] + "ContestTeamRegistry": [1772], + "ContestTeamRegistryMock": [2767], + "SafeMath": [3814] }, - "id": 2657, + "id": 2768, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2638, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2749, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "40:31:12" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol", "file": "../core/ContestTeamRegistry.sol", - "id": 2639, + "id": 2750, "nodeType": "ImportDirective", - "scope": 2657, - "sourceUnit": 1699, - "src": "25:41:12", + "scope": 2768, + "sourceUnit": 1773, + "src": "73:41:12", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2640, + "id": 2751, "name": "ContestTeamRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1698, - "src": "104:19:12", + "referencedDeclaration": 1772, + "src": "152:19:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestTeamRegistry_$1698", + "typeIdentifier": "t_contract$_ContestTeamRegistry_$1772", "typeString": "contract ContestTeamRegistry" } }, - "id": 2641, + "id": 2752, "nodeType": "InheritanceSpecifier", - "src": "104:19:12" + "src": "152:19:12" } ], - "contractDependencies": [1698], + "contractDependencies": [1772], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2656, - "linearizedBaseContracts": [2656, 1698], + "id": 2767, + "linearizedBaseContracts": [2767, 1772], "name": "ContestTeamRegistryMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2646, + "id": 2757, "nodeType": "Block", - "src": "173:2:12", + "src": "214:2:12", "statements": [] }, - "documentation": null, - "id": 2647, + "id": 2758, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2644, + "id": 2755, "modifierName": { - "argumentTypes": null, - "id": 2643, + "id": 2754, "name": "ContestTeamRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1698, - "src": "151:19:12", + "referencedDeclaration": 1772, + "src": "192:19:12", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1698_$", + "typeIdentifier": "t_type$_t_contract$_ContestTeamRegistry_$1772_$", "typeString": "type(contract ContestTeamRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "151:21:12" + "src": "192:21:12" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2642, + "id": 2753, "nodeType": "ParameterList", "parameters": [], - "src": "141:2:12" + "src": "189:2:12" }, "returnParameters": { - "id": 2645, + "id": 2756, "nodeType": "ParameterList", "parameters": [], - "src": "173:0:12" + "src": "214:0:12" }, - "scope": 2656, - "src": "130:45:12", + "scope": 2767, + "src": "178:38:12", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2654, + "id": 2765, "nodeType": "Block", - "src": "246:42:12", + "src": "287:42:12", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2652, + "id": 2763, "name": "approvedTeamsCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "263:18:12", + "referencedDeclaration": 1143, + "src": "304:18:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2651, - "id": 2653, + "functionReturnParameters": 2762, + "id": 2764, "nodeType": "Return", - "src": "256:25:12" + "src": "297:25:12" } ] }, - "documentation": null, - "id": 2655, + "functionSelector": "b103b43a", + "id": 2766, "implemented": true, "kind": "function", "modifiers": [], "name": "getApprovedTeamsCount", "nodeType": "FunctionDefinition", "parameters": { - "id": 2648, + "id": 2759, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:12" + "src": "252:2:12" }, "returnParameters": { - "id": 2651, + "id": 2762, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2650, + "id": 2761, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2655, - "src": "237:7:12", + "scope": 2766, + "src": "278:7:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -785,42 +754,42 @@ "typeString": "uint256" }, "typeName": { - "id": 2649, + "id": 2760, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "237:7:12", + "src": "278:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "236:9:12" + "src": "277:9:12" }, - "scope": 2656, - "src": "181:107:12", + "scope": 2767, + "src": "222:107:12", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2657, - "src": "68:223:12" + "scope": 2768, + "src": "116:216:12" } ], - "src": "0:292:12" + "src": "40:293:12" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.507Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.096Z", "devdoc": { + "kind": "dev", "methods": { "approveTeam(uint256)": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control.", @@ -835,22 +804,38 @@ "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "openRegistration()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -882,9 +867,11 @@ "teamId": "team's unique identifier; required" } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "approveTeam(uint256)": { "notice": "(re)approves a team in participating in the contest" @@ -925,6 +912,7 @@ "updateProposalData(uint256,bytes32)": { "notice": "Updates the proposal data for a specific team." } - } + }, + "version": 1 } } diff --git a/build/contracts/EternalStorage.json b/build/contracts/EternalStorage.json deleted file mode 100644 index 26be57a..0000000 --- a/build/contracts/EternalStorage.json +++ /dev/null @@ -1,14425 +0,0 @@ -{ - "contractName": "EternalStorage", - "abi": [ - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - } - ], - "name": "getArrayAddress", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - } - ], - "name": "getArrayBytes32", - "outputs": [ - { - "internalType": "bytes32[]", - "name": "", - "type": "bytes32[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_key", - "type": "bytes32" - } - ], - "name": "getArrayUint", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getUintValue", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getBoolValue", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getStringValue", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getAddressValue", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getBytes32Value", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_variable", - "type": "bytes32" - } - ], - "name": "getBytesValue", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getAddressValue\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getArrayAddress\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getArrayBytes32\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getArrayUint\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getBoolValue\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getBytes32Value\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getBytesValue\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getStringValue\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_variable\",\"type\":\"bytes32\"}],\"name\":\"getUintValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0.\",\"methods\":{}},\"userdoc\":{\"methods\":{\"getArrayAddress(bytes32)\":{\"notice\":\"////////////////////// getArray functions //////////////////////Get functions to get the array of the required data type Ex1- mapping(address => bytes32[]) tokensOwnedByOwner; getArrayBytes32(keccak256(abi.encodePacked(\\\"tokensOwnedByOwner\\\", 0x1)); It return the bytes32 array Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with getArrayBytes32(keccak256(abi.encodePacked(\\\"tokensOwnedByOwner\\\", 0x1)).length;\"},\"getUintValue(bytes32)\":{\"notice\":\"Public getters functions /////////////////Get function use to get the value of the singleton state variables Ex1- string public version = \\\"0.0.1\\\"; string _version = getString(keccak256(abi.encodePacked(\\\"version\\\")); Ex2 - assert(temp1 == temp2); replace to assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2)); Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as {uint256 date, string name, address owner} etc. string _name = getString(keccak256(abi.encodePacked(\\\"registeredSymbols_name\\\", \\\"TOKEN\\\"));\"}},\"notice\":\"Stores and retrieves state data. It allows other contracts to implement better upgradability by separating the contract's logic from its state. If a bug is found, the EternalStorage owner can update its logic without the need to migrate its data, which might be really expensive.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/storage/EternalStorage.sol\":\"EternalStorage\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/storage/EternalStorage.sol\":{\"keccak256\":\"0xb8fddfc2a9bbc86810a7edcf962076aa92f87b85d8e2bf4b16f2403f3ee6e4d4\",\"urls\":[\"bzz-raw://09659ae24e95fb330232dc458e895dc6b5b9af58f02b354b8979590138ff72c4\",\"dweb:/ipfs/QmZ8dMHSNAQRZ4cGbwkHvEJchbLQXpY7BSnY11VodE5eUE\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50610563806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638ffa9690116100665780638ffa9690146101ff578063a209a29c14610230578063a8f0d3a71461024d578063e82617fb1461026a578063f6fcbee11461028757610093565b8063025ec81a1461009857806344bfa56e146100c75780634c77e5ba146101595780636f3b8ce214610192575b600080fd5b6100b5600480360360208110156100ae57600080fd5b50356102a4565b60408051918252519081900360200190f35b6100e4600480360360208110156100dd57600080fd5b50356102b6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011e578181015183820152602001610106565b50505050905090810190601f16801561014b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101766004803603602081101561016f57600080fd5b5035610357565b604080516001600160a01b039092168252519081900360200190f35b6101af600480360360208110156101a857600080fd5b5035610372565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101eb5781810151838201526020016101d3565b505050509050019250505060405180910390f35b61021c6004803603602081101561021557600080fd5b50356103dd565b604080519115158252519081900360200190f35b6100e46004803603602081101561024657600080fd5b50356103f2565b6101af6004803603602081101561026357600080fd5b503561045b565b6100b56004803603602081101561028057600080fd5b50356104bc565b6101af6004803603602081101561029d57600080fd5b50356104ce565b60009081526006602052604090205490565b60008181526003602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561034b5780601f106103205761010080835404028352916020019161034b565b820191906000526020600020905b81548152906001019060200180831161032e57829003601f168201915b50505050509050919050565b6000908152600260205260409020546001600160a01b031690565b60008181526009602090815260409182902080548351818402810184019094528084526060939283018282801561034b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103b45750505050509050919050565b60009081526004602052604090205460ff1690565b60008181526001602081815260409283902080548451600294821615610100026000190190911693909304601f8101839004830284018301909452838352606093909183018282801561034b5780601f106103205761010080835404028352916020019161034b565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561034b57602002820191906000526020600020905b81548152602001906001019080831161049d5750505050509050919050565b60009081526020819052604090205490565b60008181526008602090815260409182902080548351818402810184019094528084526060939283018282801561034b576020028201919060005260206000209081548152602001906001019080831161049d575050505050905091905056fea265627a7a72315820b94ce567c3d5db4aff561ccf76a7872adef8d6a4cef046bd2f5046598ae1759e64736f6c634300050c0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80638ffa9690116100665780638ffa9690146101ff578063a209a29c14610230578063a8f0d3a71461024d578063e82617fb1461026a578063f6fcbee11461028757610093565b8063025ec81a1461009857806344bfa56e146100c75780634c77e5ba146101595780636f3b8ce214610192575b600080fd5b6100b5600480360360208110156100ae57600080fd5b50356102a4565b60408051918252519081900360200190f35b6100e4600480360360208110156100dd57600080fd5b50356102b6565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561011e578181015183820152602001610106565b50505050905090810190601f16801561014b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101766004803603602081101561016f57600080fd5b5035610357565b604080516001600160a01b039092168252519081900360200190f35b6101af600480360360208110156101a857600080fd5b5035610372565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101eb5781810151838201526020016101d3565b505050509050019250505060405180910390f35b61021c6004803603602081101561021557600080fd5b50356103dd565b604080519115158252519081900360200190f35b6100e46004803603602081101561024657600080fd5b50356103f2565b6101af6004803603602081101561026357600080fd5b503561045b565b6100b56004803603602081101561028057600080fd5b50356104bc565b6101af6004803603602081101561029d57600080fd5b50356104ce565b60009081526006602052604090205490565b60008181526003602090815260409182902080548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084526060939283018282801561034b5780601f106103205761010080835404028352916020019161034b565b820191906000526020600020905b81548152906001019060200180831161032e57829003601f168201915b50505050509050919050565b6000908152600260205260409020546001600160a01b031690565b60008181526009602090815260409182902080548351818402810184019094528084526060939283018282801561034b57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103b45750505050509050919050565b60009081526004602052604090205460ff1690565b60008181526001602081815260409283902080548451600294821615610100026000190190911693909304601f8101839004830284018301909452838352606093909183018282801561034b5780601f106103205761010080835404028352916020019161034b565b60008181526007602090815260409182902080548351818402810184019094528084526060939283018282801561034b57602002820191906000526020600020905b81548152602001906001019080831161049d5750505050509050919050565b60009081526020819052604090205490565b60008181526008602090815260409182902080548351818402810184019094528084526060939283018282801561034b576020028201919060005260206000209081548152602001906001019080831161049d575050505050905091905056fea265627a7a72315820b94ce567c3d5db4aff561ccf76a7872adef8d6a4cef046bd2f5046598ae1759e64736f6c634300050c0032", - "sourceMap": "1662:9998:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1662:9998:23;;;;;;;", - "deployedSourceMap": "1662:9998:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1662:9998:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11404:123;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11404:123:23;;:::i;:::-;;;;;;;;;;;;;;;;11533:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11533:124:23;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11533:124:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11275:123;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11275:123:23;;:::i;:::-;;;;-1:-1:-1;;;;;11275:123:23;;;;;;;;;;;;;;8772:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8772:127:23;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8772:127:23;;;;;;;;;;;;;;;;;11022:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11022:114:23;;:::i;:::-;;;;;;;;;;;;;;;;;;11142:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11142:127:23;;:::i;8905:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8905:127:23;;:::i;10899:117::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10899:117:23;;:::i;9038:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9038:121:23;;:::i;11404:123::-;11469:7;11495:25;;;:14;:25;;;;;;;11404:123::o;11533:124::-;11627:23;;;;:12;:23;;;;;;;;;11620:30;;;;;;-1:-1:-1;;11620:30:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11596:12;;11620:30;;;11627:23;11620:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11533:124;;;:::o;11275:123::-;11340:7;11366:25;;;:14;:25;;;;;;-1:-1:-1;;;;;11366:25:23;;11275:123::o;8772:127::-;8867:25;;;;:19;:25;;;;;;;;;8860:32;;;;;;;;;;;;;;;;;8832:16;;8860:32;;;8867:25;8860:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8860:32:23;;;;;;;;;;;;;;;;;;;;;;8772:127;;;:::o;11022:114::-;11084:4;11107:22;;;:11;:22;;;;;;;;;11022:114::o;11142:127::-;11238:24;;;;:13;:24;;;;;;;;;11231:31;;;;;;;;;;;-1:-1:-1;;11231:31:23;;;;;;;;;;;;;;;;;;;;;;;;;;11206:13;;11238:24;;11231:31;;11238:24;11231:31;;;;;;;;;;;;;;;;;;;;;;;;8905:127;9000:25;;;;:19;:25;;;;;;;;;8993:32;;;;;;;;;;;;;;;;;8965:16;;8993:32;;;9000:25;8993:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8905:127;;;:::o;10899:117::-;10961:7;10987:22;;;;;;;;;;;;10899:117::o;9038:121::-;9130:22;;;;:16;:22;;;;;;;;;9123:29;;;;;;;;;;;;;;;;;9095:16;;9123:29;;;9130:22;9123:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9038:121;;;:::o", - "source": "// MIT License\n\n// Copyright (c) 2018 Polymath\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n// Source: https://github.com/PolymathNetwork/polymath-core/blob/master/contracts/storage/EternalStorage.sol\n\npragma solidity ^0.5.0;\n\n/**\n * @notice Stores and retrieves state data. It allows other contracts to implement better\n * upgradability by separating the contract's logic from its state. If a bug is found, the\n * EternalStorage owner can update its logic without the need to migrate its data, which might\n * be really expensive.\n * @dev This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0.\n */\ncontract EternalStorage {\n /// @notice Internal mappings used to store all kinds on data into the contract\n mapping(bytes32 => uint256) internal uintStorage;\n mapping(bytes32 => string) internal stringStorage;\n mapping(bytes32 => address) internal addressStorage;\n mapping(bytes32 => bytes) internal bytesStorage;\n mapping(bytes32 => bool) internal boolStorage;\n mapping(bytes32 => int256) internal intStorage;\n mapping(bytes32 => bytes32) internal bytes32Storage;\n\n /// @notice Internal mappings used to store arrays of different data types\n mapping(bytes32 => bytes32[]) internal bytes32ArrayStorage;\n mapping(bytes32 => uint256[]) internal uintArrayStorage;\n mapping(bytes32 => address[]) internal addressArrayStorage;\n mapping(bytes32 => string[]) internal stringArrayStorage;\n\n //////////////////\n //// set functions\n //////////////////\n /// @notice Set the key values using the Overloaded `set` functions\n /// Ex- string version = \"0.0.1\"; replace to\n /// set(keccak256(abi.encodePacked(\"version\"), \"0.0.1\");\n /// same for the other variables as well some more example listed below\n /// ex1 - address securityTokenAddress = 0x123; replace to\n /// set(keccak256(abi.encodePacked(\"securityTokenAddress\"), 0x123);\n /// ex2 - bytes32 tokenDetails = \"I am ST20\"; replace to\n /// set(keccak256(abi.encodePacked(\"tokenDetails\"), \"I am ST20\");\n /// ex3 - mapping(string => address) ownedToken;\n /// set(keccak256(abi.encodePacked(\"ownedToken\", \"Chris\")), 0x123);\n /// ex4 - mapping(string => uint) tokenIndex;\n /// tokenIndex[\"TOKEN\"] = 1; replace to set(keccak256(abi.encodePacked(\"tokenIndex\", \"TOKEN\"), 1);\n /// ex5 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n /// {uint256 date, string name, address owner} etc.\n /// registeredSymbols[\"TOKEN\"].name = \"MyFristToken\"; replace to set(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"), \"MyFirstToken\");\n /// More generalized- set(keccak256(abi.encodePacked(\"registeredSymbols_\", \"keyname\"), \"value\");\n\n function set(bytes32 _key, uint256 _value) internal {\n uintStorage[_key] = _value;\n }\n\n function set(bytes32 _key, address _value) internal {\n addressStorage[_key] = _value;\n }\n\n function set(bytes32 _key, bool _value) internal {\n boolStorage[_key] = _value;\n }\n\n function set(bytes32 _key, bytes32 _value) internal {\n bytes32Storage[_key] = _value;\n }\n\n function set(bytes32 _key, string memory _value) internal {\n stringStorage[_key] = _value;\n }\n\n ////////////////////////////\n // deleteArray functions\n ////////////////////////////\n /// @notice Function used to delete the array element.\n /// Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n /// For deleting the item from array developers needs to create a funtion for that similarly\n /// in this case we have the helper function deleteArrayBytes32() which will do it for us\n /// deleteArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1), 3); -- it will delete the index 3\n\n //Deletes from mapping (bytes32 => array[]) at index _index\n function deleteArrayAddress(bytes32 _key, uint256 _index) internal {\n address[] storage array = addressArrayStorage[_key];\n require(_index < array.length, \"Index should less than length of the array\");\n array[_index] = array[array.length - 1];\n array.length = array.length - 1;\n }\n\n //Deletes from mapping (bytes32 => bytes32[]) at index _index\n function deleteArrayBytes32(bytes32 _key, uint256 _index) internal {\n bytes32[] storage array = bytes32ArrayStorage[_key];\n require(_index < array.length, \"Index should less than length of the array\");\n array[_index] = array[array.length - 1];\n array.length = array.length - 1;\n }\n\n //Deletes from mapping (bytes32 => uint[]) at index _index\n function deleteArrayUint(bytes32 _key, uint256 _index) internal {\n uint256[] storage array = uintArrayStorage[_key];\n require(_index < array.length, \"Index should less than length of the array\");\n array[_index] = array[array.length - 1];\n array.length = array.length - 1;\n }\n\n //Deletes from mapping (bytes32 => string[]) at index _index\n function deleteArrayString(bytes32 _key, uint256 _index) internal {\n string[] storage array = stringArrayStorage[_key];\n require(_index < array.length, \"Index should less than length of the array\");\n array[_index] = array[array.length - 1];\n array.length = array.length - 1;\n }\n\n ////////////////////////////\n //// pushArray functions\n ///////////////////////////\n /// @notice Below are the helper functions to facilitate storing arrays of different data types.\n /// Ex1- mapping(address => bytes32[]) tokensOwnedByTicker;\n /// tokensOwnedByTicker[owner] = tokensOwnedByTicker[owner].push(\"xyz\"); replace with\n /// pushArray(keccak256(abi.encodePacked(\"tokensOwnedByTicker\", owner), \"xyz\");\n\n /// @notice use to store the values for the array\n /// @param _key bytes32 type\n /// @param _value [uint256, string, bytes32, address] any of the data type in array\n function pushArray(bytes32 _key, address _value) internal {\n addressArrayStorage[_key].push(_value);\n }\n\n function pushArray(bytes32 _key, bytes32 _value) internal {\n bytes32ArrayStorage[_key].push(_value);\n }\n\n function pushArray(bytes32 _key, string memory _value) internal {\n stringArrayStorage[_key].push(_value);\n }\n\n function pushArray(bytes32 _key, uint256 _value) internal {\n uintArrayStorage[_key].push(_value);\n }\n\n /////////////////////////\n //// Set Array functions\n ////////////////////////\n /// @notice used to intialize the array\n /// Ex1- mapping (address => address[]) public reputation;\n /// reputation[0x1] = new address[](0); It can be replaced as\n /// setArray(hash('reputation', 0x1), new address[](0));\n\n function setArray(bytes32 _key, address[] memory _value) internal {\n addressArrayStorage[_key] = _value;\n }\n\n function setArray(bytes32 _key, uint256[] memory _value) internal {\n uintArrayStorage[_key] = _value;\n }\n\n function setArray(bytes32 _key, bytes32[] memory _value) internal {\n bytes32ArrayStorage[_key] = _value;\n }\n\n function setArray(bytes32 _key, string[] memory _value) internal {\n stringArrayStorage[_key] = _value;\n }\n\n /////////////////////////\n /// getArray functions\n /////////////////////////\n /// @notice Get functions to get the array of the required data type\n /// Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n /// getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)); It return the bytes32 array\n /// Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with\n /// getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)).length;\n\n function getArrayAddress(bytes32 _key) public view returns (address[] memory) {\n return addressArrayStorage[_key];\n }\n\n function getArrayBytes32(bytes32 _key) public view returns (bytes32[] memory) {\n return bytes32ArrayStorage[_key];\n }\n\n function getArrayUint(bytes32 _key) public view returns (uint256[] memory) {\n return uintArrayStorage[_key];\n }\n\n ///////////////////////////////////\n /// setArrayIndexValue() functions\n ///////////////////////////////////\n /// @notice set the value of particular index of the address array\n /// Ex1- mapping(bytes32 => address[]) moduleList;\n /// general way is -- moduleList[moduleType][index] = temp;\n /// It can be re-write as -- setArrayIndexValue(keccak256(abi.encodePacked('moduleList', moduleType)), index, temp);\n\n function setArrayIndexValue(bytes32 _key, uint256 _index, address _value) internal {\n addressArrayStorage[_key][_index] = _value;\n }\n\n function setArrayIndexValue(bytes32 _key, uint256 _index, uint256 _value) internal {\n uintArrayStorage[_key][_index] = _value;\n }\n\n function setArrayIndexValue(bytes32 _key, uint256 _index, bytes32 _value) internal {\n bytes32ArrayStorage[_key][_index] = _value;\n }\n\n function setArrayIndexValue(bytes32 _key, uint256 _index, string memory _value) internal {\n stringArrayStorage[_key][_index] = _value;\n }\n\n /// Public getters functions\n ////////////////////\n /// @notice Get function use to get the value of the singleton state variables\n /// Ex1- string public version = \"0.0.1\";\n /// string _version = getString(keccak256(abi.encodePacked(\"version\"));\n /// Ex2 - assert(temp1 == temp2); replace to\n /// assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2));\n /// Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n /// {uint256 date, string name, address owner} etc.\n /// string _name = getString(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"));\n\n function getUintValue(bytes32 _variable) public view returns (uint256) {\n return uintStorage[_variable];\n }\n\n function getBoolValue(bytes32 _variable) public view returns (bool) {\n return boolStorage[_variable];\n }\n\n function getStringValue(bytes32 _variable) public view returns (string memory) {\n return stringStorage[_variable];\n }\n\n function getAddressValue(bytes32 _variable) public view returns (address) {\n return addressStorage[_variable];\n }\n\n function getBytes32Value(bytes32 _variable) public view returns (bytes32) {\n return bytes32Storage[_variable];\n }\n\n function getBytesValue(bytes32 _variable) public view returns (bytes memory) {\n return bytesStorage[_variable];\n }\n\n}\n", - "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/storage/EternalStorage.sol", - "ast": { - "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/storage/EternalStorage.sol", - "exportedSymbols": { - "EternalStorage": [4001] - }, - "id": 4002, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3403, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "1227:23:23" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@notice Stores and retrieves state data. It allows other contracts to implement better\nupgradability by separating the contract's logic from its state. If a bug is found, the\nEternalStorage owner can update its logic without the need to migrate its data, which might\nbe really expensive.\n@dev This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0.", - "fullyImplemented": true, - "id": 4001, - "linearizedBaseContracts": [4001], - "name": "EternalStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3407, - "name": "uintStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1776:48:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3406, - "keyType": { - "id": 3404, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1784:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1776:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1795:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "stringStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1830:49:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string)" - }, - "typeName": { - "id": 3410, - "keyType": { - "id": 3408, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1838:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1830:26:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string)" - }, - "valueType": { - "id": 3409, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1849:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3415, - "name": "addressStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1885:51:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 3414, - "keyType": { - "id": 3412, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1893:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1885:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 3413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1904:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3419, - "name": "bytesStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1942:47:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3418, - "keyType": { - "id": 3416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1950:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1942:25:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3417, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1961:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3423, - "name": "boolStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1995:45:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 3422, - "keyType": { - "id": 3420, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2003:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1995:24:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 3421, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3427, - "name": "intStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2046:46:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$", - "typeString": "mapping(bytes32 => int256)" - }, - "typeName": { - "id": 3426, - "keyType": { - "id": 3424, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2054:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2046:26:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$", - "typeString": "mapping(bytes32 => int256)" - }, - "valueType": { - "id": 3425, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "2065:6:23", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3431, - "name": "bytes32Storage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2098:51:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - }, - "typeName": { - "id": 3430, - "keyType": { - "id": 3428, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2106:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2098:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - }, - "valueType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2117:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "bytes32ArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2235:58:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[])" - }, - "typeName": { - "id": 3435, - "keyType": { - "id": 3432, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2243:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2235:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[])" - }, - "valueType": { - "baseType": { - "id": 3433, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2254:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3434, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2254:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3441, - "name": "uintArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2299:55:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[])" - }, - "typeName": { - "id": 3440, - "keyType": { - "id": 3437, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2307:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2299:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[])" - }, - "valueType": { - "baseType": { - "id": 3438, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2318:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3439, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2318:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3446, - "name": "addressArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2360:58:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[])" - }, - "typeName": { - "id": 3445, - "keyType": { - "id": 3442, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2368:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2360:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[])" - }, - "valueType": { - "baseType": { - "id": 3443, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2379:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2379:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3451, - "name": "stringArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2424:56:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string[])" - }, - "typeName": { - "id": 3450, - "keyType": { - "id": 3447, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2432:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2424:28:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string[])" - }, - "valueType": { - "baseType": { - "id": 3448, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2443:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3449, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2443:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3464, - "nodeType": "Block", - "src": "3876:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3458, - "name": "uintStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "3886:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3460, - "indexExpression": { - "argumentTypes": null, - "id": 3459, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "3898:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3886:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3461, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3455, - "src": "3906:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3886:26:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3463, - "nodeType": "ExpressionStatement", - "src": "3886:26:23" - } - ] - }, - "documentation": "///////////////\n/ set functions\n///////////////\n @notice Set the key values using the Overloaded `set` functions\n Ex- string version = \"0.0.1\"; replace to\n set(keccak256(abi.encodePacked(\"version\"), \"0.0.1\");\n same for the other variables as well some more example listed below\n ex1 - address securityTokenAddress = 0x123; replace to\n set(keccak256(abi.encodePacked(\"securityTokenAddress\"), 0x123);\n ex2 - bytes32 tokenDetails = \"I am ST20\"; replace to\n set(keccak256(abi.encodePacked(\"tokenDetails\"), \"I am ST20\");\n ex3 - mapping(string => address) ownedToken;\n set(keccak256(abi.encodePacked(\"ownedToken\", \"Chris\")), 0x123);\n ex4 - mapping(string => uint) tokenIndex;\n tokenIndex[\"TOKEN\"] = 1; replace to set(keccak256(abi.encodePacked(\"tokenIndex\", \"TOKEN\"), 1);\n ex5 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n {uint256 date, string name, address owner} etc.\n registeredSymbols[\"TOKEN\"].name = \"MyFristToken\"; replace to set(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"), \"MyFirstToken\");\n More generalized- set(keccak256(abi.encodePacked(\"registeredSymbols_\", \"keyname\"), \"value\");", - "id": 3465, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3456, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3453, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3465, - "src": "3837:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3452, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3837:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3455, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3465, - "src": "3851:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3454, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3851:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3836:30:23" - }, - "returnParameters": { - "id": 3457, - "nodeType": "ParameterList", - "parameters": [], - "src": "3876:0:23" - }, - "scope": 4001, - "src": "3824:95:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3478, - "nodeType": "Block", - "src": "3977:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3472, - "name": "addressStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "3987:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 3474, - "indexExpression": { - "argumentTypes": null, - "id": 3473, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "4002:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3987:20:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3475, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "4010:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3987:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3477, - "nodeType": "ExpressionStatement", - "src": "3987:29:23" - } - ] - }, - "documentation": null, - "id": 3479, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3470, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3467, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "3938:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3466, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3938:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3469, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "3952:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3952:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3937:30:23" - }, - "returnParameters": { - "id": 3471, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:0:23" - }, - "scope": 4001, - "src": "3925:98:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3492, - "nodeType": "Block", - "src": "4078:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3486, - "name": "boolStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "4088:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3488, - "indexExpression": { - "argumentTypes": null, - "id": 3487, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "4100:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4088:17:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3489, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3483, - "src": "4108:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4088:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3491, - "nodeType": "ExpressionStatement", - "src": "4088:26:23" - } - ] - }, - "documentation": null, - "id": 3493, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3481, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3493, - "src": "4042:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3480, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4042:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3483, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3493, - "src": "4056:11:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3482, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4056:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4041:27:23" - }, - "returnParameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [], - "src": "4078:0:23" - }, - "scope": 4001, - "src": "4029:92:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3506, - "nodeType": "Block", - "src": "4179:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3500, - "name": "bytes32Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "4189:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 3502, - "indexExpression": { - "argumentTypes": null, - "id": 3501, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3495, - "src": "4204:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4189:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3503, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3497, - "src": "4212:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4189:29:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3505, - "nodeType": "ExpressionStatement", - "src": "4189:29:23" - } - ] - }, - "documentation": null, - "id": 3507, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3495, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3507, - "src": "4140:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3494, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4140:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3497, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3507, - "src": "4154:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3496, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4154:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4139:30:23" - }, - "returnParameters": { - "id": 3499, - "nodeType": "ParameterList", - "parameters": [], - "src": "4179:0:23" - }, - "scope": 4001, - "src": "4127:98:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3520, - "nodeType": "Block", - "src": "4289:45:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3514, - "name": "stringStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "4299:13:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string storage ref)" - } - }, - "id": 3516, - "indexExpression": { - "argumentTypes": null, - "id": 3515, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "4313:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4299:19:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3517, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3511, - "src": "4321:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4299:28:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3519, - "nodeType": "ExpressionStatement", - "src": "4299:28:23" - } - ] - }, - "documentation": null, - "id": 3521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3509, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3521, - "src": "4244:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3508, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4244:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3511, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3521, - "src": "4258:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3510, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4258:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4243:36:23" - }, - "returnParameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "4289:0:23" - }, - "scope": 4001, - "src": "4231:103:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3564, - "nodeType": "Block", - "src": "4996:244:23", - "statements": [ - { - "assignments": [3531], - "declarations": [ - { - "constant": false, - "id": 3531, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3564, - "src": "5006:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5006:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3530, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5006:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3535, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3532, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "5032:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3534, - "indexExpression": { - "argumentTypes": null, - "id": 3533, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "5052:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5032:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5006:51:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3537, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5075:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3538, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5084:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3539, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5084:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5098:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3536, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5067:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3543, - "nodeType": "ExpressionStatement", - "src": "5067:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3544, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5153:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3546, - "indexExpression": { - "argumentTypes": null, - "id": 3545, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5159:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5153:13:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3547, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5169:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3548, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5175:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3549, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5175:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5190:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5175:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5169:23:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5153:39:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3554, - "nodeType": "ExpressionStatement", - "src": "5153:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3555, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5202:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3557, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5202:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3558, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5217:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5217:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5232:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5217:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5202:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3563, - "nodeType": "ExpressionStatement", - "src": "5202:31:23" - } - ] - }, - "documentation": "/////////////////////////\n @notice Function used to delete the array element.\n Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n For deleting the item from array developers needs to create a funtion for that similarly\n in this case we have the helper function deleteArrayBytes32() which will do it for us\n deleteArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1), 3); -- it will delete the index 3", - "id": 3565, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3523, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3565, - "src": "4957:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3522, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4957:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3525, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3565, - "src": "4971:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4971:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4956:30:23" - }, - "returnParameters": { - "id": 3527, - "nodeType": "ParameterList", - "parameters": [], - "src": "4996:0:23" - }, - "scope": 4001, - "src": "4929:311:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "5379:244:23", - "statements": [ - { - "assignments": [3575], - "declarations": [ - { - "constant": false, - "id": 3575, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3608, - "src": "5389:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3573, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5389:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3574, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5389:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3579, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3576, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5415:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3578, - "indexExpression": { - "argumentTypes": null, - "id": 3577, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3567, - "src": "5435:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5415:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5389:51:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3581, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3569, - "src": "5458:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3582, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5467:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5467:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5458:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5481:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3580, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5450:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3587, - "nodeType": "ExpressionStatement", - "src": "5450:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3588, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5536:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3590, - "indexExpression": { - "argumentTypes": null, - "id": 3589, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3569, - "src": "5542:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5536:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3591, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5552:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3596, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5558:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5558:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5573:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5558:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5552:23:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "5536:39:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5536:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3599, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5585:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5585:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3602, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5600:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3603, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5600:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5615:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5600:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5585:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3607, - "nodeType": "ExpressionStatement", - "src": "5585:31:23" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayBytes32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3567, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "5340:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3566, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5340:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3569, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "5354:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3568, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5354:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5339:30:23" - }, - "returnParameters": { - "id": 3571, - "nodeType": "ParameterList", - "parameters": [], - "src": "5379:0:23" - }, - "scope": 4001, - "src": "5312:311:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3652, - "nodeType": "Block", - "src": "5756:241:23", - "statements": [ - { - "assignments": [3619], - "declarations": [ - { - "constant": false, - "id": 3619, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3652, - "src": "5766:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5766:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3618, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5766:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3623, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3620, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "5792:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3622, - "indexExpression": { - "argumentTypes": null, - "id": 3621, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "5809:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5792:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5766:48:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5832:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3626, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5841:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5841:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5832:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5855:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5824:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5824:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "5824:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3632, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5910:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3634, - "indexExpression": { - "argumentTypes": null, - "id": 3633, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5916:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5910:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3635, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5926:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3636, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5932:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3637, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5932:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5947:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5932:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5926:23:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5910:39:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "5910:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3643, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5959:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5959:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3646, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5974:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5974:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5989:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5974:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5959:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "5959:31:23" - } - ] - }, - "documentation": null, - "id": 3653, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3653, - "src": "5717:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3610, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5717:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3613, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3653, - "src": "5731:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5731:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5716:30:23" - }, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [], - "src": "5756:0:23" - }, - "scope": 4001, - "src": "5692:305:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3696, - "nodeType": "Block", - "src": "6134:242:23", - "statements": [ - { - "assignments": [3663], - "declarations": [ - { - "constant": false, - "id": 3663, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3696, - "src": "6144:22:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 3661, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6144:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3662, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6144:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3667, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3664, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "6169:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3666, - "indexExpression": { - "argumentTypes": null, - "id": 3665, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "6188:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6169:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6144:49:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3669, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3657, - "src": "6211:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6220:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3671, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6220:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6211:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6234:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3668, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "6203:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6203:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "6203:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6289:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3657, - "src": "6295:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6289:13:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3679, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6305:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3680, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6311:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6311:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6326:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6311:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6305:23:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "6289:39:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3686, - "nodeType": "ExpressionStatement", - "src": "6289:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3687, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6338:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3689, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6338:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3690, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6353:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3691, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6353:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6368:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6353:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6338:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "6338:31:23" - } - ] - }, - "documentation": null, - "id": 3697, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayString", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3655, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3697, - "src": "6095:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3654, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6095:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3657, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3697, - "src": "6109:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3656, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6109:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6094:30:23" - }, - "returnParameters": { - "id": 3659, - "nodeType": "ParameterList", - "parameters": [], - "src": "6134:0:23" - }, - "scope": 4001, - "src": "6068:308:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3711, - "nodeType": "Block", - "src": "7049:55:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3708, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "7090:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3704, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7059:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3706, - "indexExpression": { - "argumentTypes": null, - "id": 3705, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3699, - "src": "7079:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7059:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7059:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7059:38:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3710, - "nodeType": "ExpressionStatement", - "src": "7059:38:23" - } - ] - }, - "documentation": "/////////////////////////\n/ pushArray functions\n////////////////////////\n @notice Below are the helper functions to facilitate storing arrays of different data types.\n Ex1- mapping(address => bytes32[]) tokensOwnedByTicker;\n tokensOwnedByTicker[owner] = tokensOwnedByTicker[owner].push(\"xyz\"); replace with\n pushArray(keccak256(abi.encodePacked(\"tokensOwnedByTicker\", owner), \"xyz\");\n @notice use to store the values for the array\n @param _key bytes32 type\n @param _value [uint256, string, bytes32, address] any of the data type in array", - "id": 3712, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3699, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3712, - "src": "7010:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3698, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7010:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3701, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3712, - "src": "7024:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7024:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7009:30:23" - }, - "returnParameters": { - "id": 3703, - "nodeType": "ParameterList", - "parameters": [], - "src": "7049:0:23" - }, - "scope": 4001, - "src": "6991:113:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3726, - "nodeType": "Block", - "src": "7168:55:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3723, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7209:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3719, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "7178:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3721, - "indexExpression": { - "argumentTypes": null, - "id": 3720, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3714, - "src": "7198:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7178:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7178:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) returns (uint256)" - } - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7178:38:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3725, - "nodeType": "ExpressionStatement", - "src": "7178:38:23" - } - ] - }, - "documentation": null, - "id": 3727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3714, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "7129:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3713, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7129:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3716, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "7143:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3715, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7143:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7128:30:23" - }, - "returnParameters": { - "id": 3718, - "nodeType": "ParameterList", - "parameters": [], - "src": "7168:0:23" - }, - "scope": 4001, - "src": "7110:113:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3741, - "nodeType": "Block", - "src": "7293:54:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3738, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3731, - "src": "7333:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "7303:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3729, - "src": "7322:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7303:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7303:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", - "typeString": "function (string storage ref) returns (uint256)" - } - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7303:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3740, - "nodeType": "ExpressionStatement", - "src": "7303:37:23" - } - ] - }, - "documentation": null, - "id": 3742, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3729, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3742, - "src": "7248:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7248:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3731, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3742, - "src": "7262:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3730, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7262:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7247:36:23" - }, - "returnParameters": { - "id": 3733, - "nodeType": "ParameterList", - "parameters": [], - "src": "7293:0:23" - }, - "scope": 4001, - "src": "7229:118:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3756, - "nodeType": "Block", - "src": "7411:52:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7449:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3749, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "7421:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3751, - "indexExpression": { - "argumentTypes": null, - "id": 3750, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "7438:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7421:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7421:27:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7421:35:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3755, - "nodeType": "ExpressionStatement", - "src": "7421:35:23" - } - ] - }, - "documentation": null, - "id": 3757, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3744, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3757, - "src": "7372:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3743, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3746, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3757, - "src": "7386:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7386:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:30:23" - }, - "returnParameters": { - "id": 3748, - "nodeType": "ParameterList", - "parameters": [], - "src": "7411:0:23" - }, - "scope": 4001, - "src": "7353:110:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3771, - "nodeType": "Block", - "src": "7858:51:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7868:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3767, - "indexExpression": { - "argumentTypes": null, - "id": 3766, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3759, - "src": "7888:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7868:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3768, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7896:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "7868:34:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3770, - "nodeType": "ExpressionStatement", - "src": "7868:34:23" - } - ] - }, - "documentation": "//////////////////////\n/ Set Array functions\n/////////////////////\n @notice used to intialize the array\n Ex1- mapping (address => address[]) public reputation;\n reputation[0x1] = new address[](0); It can be replaced as\n setArray(hash('reputation', 0x1), new address[](0));", - "id": 3772, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3772, - "src": "7810:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3758, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7810:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3772, - "src": "7824:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7824:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3761, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7824:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7809:39:23" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7858:0:23" - }, - "scope": 4001, - "src": "7792:117:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3786, - "nodeType": "Block", - "src": "7981:48:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3780, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "7991:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3782, - "indexExpression": { - "argumentTypes": null, - "id": 3781, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3774, - "src": "8008:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7991:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3783, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3777, - "src": "8016:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "7991:31:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3785, - "nodeType": "ExpressionStatement", - "src": "7991:31:23" - } - ] - }, - "documentation": null, - "id": 3787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3778, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3774, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3787, - "src": "7933:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3773, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7933:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3777, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3787, - "src": "7947:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7947:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3776, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7947:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7932:39:23" - }, - "returnParameters": { - "id": 3779, - "nodeType": "ParameterList", - "parameters": [], - "src": "7981:0:23" - }, - "scope": 4001, - "src": "7915:114:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3801, - "nodeType": "Block", - "src": "8101:51:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3795, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "8111:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3797, - "indexExpression": { - "argumentTypes": null, - "id": 3796, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3789, - "src": "8131:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8111:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3798, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3792, - "src": "8139:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "src": "8111:34:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3800, - "nodeType": "ExpressionStatement", - "src": "8111:34:23" - } - ] - }, - "documentation": null, - "id": 3802, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3789, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3802, - "src": "8053:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3788, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8053:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3792, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3802, - "src": "8067:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3790, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3791, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8067:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8052:39:23" - }, - "returnParameters": { - "id": 3794, - "nodeType": "ParameterList", - "parameters": [], - "src": "8101:0:23" - }, - "scope": 4001, - "src": "8035:117:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3816, - "nodeType": "Block", - "src": "8223:50:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3810, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "8233:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3812, - "indexExpression": { - "argumentTypes": null, - "id": 3811, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "8252:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3813, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3807, - "src": "8260:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "src": "8233:33:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3815, - "nodeType": "ExpressionStatement", - "src": "8233:33:23" - } - ] - }, - "documentation": null, - "id": 3817, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3804, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3817, - "src": "8176:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3803, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8176:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3807, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3817, - "src": "8190:22:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 3805, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8190:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3806, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8190:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8175:38:23" - }, - "returnParameters": { - "id": 3809, - "nodeType": "ParameterList", - "parameters": [], - "src": "8223:0:23" - }, - "scope": 4001, - "src": "8158:115:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3829, - "nodeType": "Block", - "src": "8850:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3825, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "8867:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3827, - "indexExpression": { - "argumentTypes": null, - "id": 3826, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "8887:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8867:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 3824, - "id": 3828, - "nodeType": "Return", - "src": "8860:32:23" - } - ] - }, - "documentation": "//////////////////////\n getArray functions\n//////////////////////\n @notice Get functions to get the array of the required data type\n Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)); It return the bytes32 array\n Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with\n getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)).length;", - "id": 3830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3819, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "8797:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3818, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8797:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8796:14:23" - }, - "returnParameters": { - "id": 3824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3823, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "8832:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3821, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8832:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3822, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8832:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8831:18:23" - }, - "scope": 4001, - "src": "8772:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3842, - "nodeType": "Block", - "src": "8983:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3838, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "9000:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3840, - "indexExpression": { - "argumentTypes": null, - "id": 3839, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "9020:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9000:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "functionReturnParameters": 3837, - "id": 3841, - "nodeType": "Return", - "src": "8993:32:23" - } - ] - }, - "documentation": null, - "id": 3843, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayBytes32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3843, - "src": "8930:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3831, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8930:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8929:14:23" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3836, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3843, - "src": "8965:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3834, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8965:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3835, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8965:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8964:18:23" - }, - "scope": 4001, - "src": "8905:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "9113:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "9130:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "9147:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 3850, - "id": 3854, - "nodeType": "Return", - "src": "9123:29:23" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3845, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "9060:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3844, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9060:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9059:14:23" - }, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "9095:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3847, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9095:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3848, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9095:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9094:18:23" - }, - "scope": 4001, - "src": "9038:121:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3873, - "nodeType": "Block", - "src": "9679:59:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "9689:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3868, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "9709:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9689:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3869, - "indexExpression": { - "argumentTypes": null, - "id": 3867, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "9715:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9689:33:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3870, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3862, - "src": "9725:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9689:42:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "9689:42:23" - } - ] - }, - "documentation": "////////////////////////////////\n setArrayIndexValue() functions\n////////////////////////////////\n @notice set the value of particular index of the address array\n Ex1- mapping(bytes32 => address[]) moduleList;\n general way is -- moduleList[moduleType][index] = temp;\n It can be re-write as -- setArrayIndexValue(keccak256(abi.encodePacked('moduleList', moduleType)), index, temp);", - "id": 3874, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9624:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3857, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9624:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9638:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3859, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9638:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3862, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9654:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3861, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9654:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9623:46:23" - }, - "returnParameters": { - "id": 3864, - "nodeType": "ParameterList", - "parameters": [], - "src": "9679:0:23" - }, - "scope": 4001, - "src": "9596:142:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3891, - "nodeType": "Block", - "src": "9827:56:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "9837:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "id": 3884, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3876, - "src": "9854:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9837:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3887, - "indexExpression": { - "argumentTypes": null, - "id": 3885, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3878, - "src": "9860:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9837:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3888, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3880, - "src": "9870:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9837:39:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3890, - "nodeType": "ExpressionStatement", - "src": "9837:39:23" - } - ] - }, - "documentation": null, - "id": 3892, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3876, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9772:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3875, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9772:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3878, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9786:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9786:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3880, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9802:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9802:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9771:46:23" - }, - "returnParameters": { - "id": 3882, - "nodeType": "ParameterList", - "parameters": [], - "src": "9827:0:23" - }, - "scope": 4001, - "src": "9744:139:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3909, - "nodeType": "Block", - "src": "9972:59:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "9982:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3904, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "10002:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9982:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3905, - "indexExpression": { - "argumentTypes": null, - "id": 3903, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "10008:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9982:33:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3906, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "10018:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9982:42:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3908, - "nodeType": "ExpressionStatement", - "src": "9982:42:23" - } - ] - }, - "documentation": null, - "id": 3910, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3894, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9917:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3893, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9917:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3896, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9931:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3895, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9931:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3898, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9947:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3897, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9947:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9916:46:23" - }, - "returnParameters": { - "id": 3900, - "nodeType": "ParameterList", - "parameters": [], - "src": "9972:0:23" - }, - "scope": 4001, - "src": "9889:142:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3927, - "nodeType": "Block", - "src": "10126:58:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3919, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "10136:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3920, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3912, - "src": "10155:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10136:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3923, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "10161:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10136:32:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3924, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3916, - "src": "10171:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "10136:41:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3926, - "nodeType": "ExpressionStatement", - "src": "10136:41:23" - } - ] - }, - "documentation": null, - "id": 3928, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3917, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3912, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10065:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3911, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10065:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3914, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10079:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3913, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10079:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3916, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10095:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3915, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "10095:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10064:52:23" - }, - "returnParameters": { - "id": 3918, - "nodeType": "ParameterList", - "parameters": [], - "src": "10126:0:23" - }, - "scope": 4001, - "src": "10037:147:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3939, - "nodeType": "Block", - "src": "10970:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3935, - "name": "uintStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "10987:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3937, - "indexExpression": { - "argumentTypes": null, - "id": 3936, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "10999:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10987:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3934, - "id": 3938, - "nodeType": "Return", - "src": "10980:29:23" - } - ] - }, - "documentation": "Public getters functions\n/////////////////\n @notice Get function use to get the value of the singleton state variables\n Ex1- string public version = \"0.0.1\";\n string _version = getString(keccak256(abi.encodePacked(\"version\"));\n Ex2 - assert(temp1 == temp2); replace to\n assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2));\n Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n {uint256 date, string name, address owner} etc.\n string _name = getString(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"));", - "id": 3940, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUintValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3931, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3930, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3940, - "src": "10921:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10921:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10920:19:23" - }, - "returnParameters": { - "id": 3934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3933, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3940, - "src": "10961:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10961:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10960:9:23" - }, - "scope": 4001, - "src": "10899:117:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "11090:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3947, - "name": "boolStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "11107:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3949, - "indexExpression": { - "argumentTypes": null, - "id": 3948, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "11119:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:22:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3946, - "id": 3950, - "nodeType": "Return", - "src": "11100:29:23" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBoolValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3942, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "11044:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3941, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11044:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11043:19:23" - }, - "returnParameters": { - "id": 3946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3945, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "11084:4:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3944, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:23" - }, - "scope": 4001, - "src": "11022:114:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3963, - "nodeType": "Block", - "src": "11221:48:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3959, - "name": "stringStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "11238:13:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string storage ref)" - } - }, - "id": 3961, - "indexExpression": { - "argumentTypes": null, - "id": 3960, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3954, - "src": "11252:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11238:24:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 3958, - "id": 3962, - "nodeType": "Return", - "src": "11231:31:23" - } - ] - }, - "documentation": null, - "id": 3964, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3954, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3964, - "src": "11166:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3953, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11166:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11165:19:23" - }, - "returnParameters": { - "id": 3958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3957, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3964, - "src": "11206:13:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3956, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "11206:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11205:15:23" - }, - "scope": 4001, - "src": "11142:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3975, - "nodeType": "Block", - "src": "11349:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3971, - "name": "addressStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "11366:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 3973, - "indexExpression": { - "argumentTypes": null, - "id": 3972, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3966, - "src": "11381:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11366:25:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3970, - "id": 3974, - "nodeType": "Return", - "src": "11359:32:23" - } - ] - }, - "documentation": null, - "id": 3976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAddressValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3966, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3976, - "src": "11300:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3965, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11300:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11299:19:23" - }, - "returnParameters": { - "id": 3970, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3969, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3976, - "src": "11340:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3968, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11340:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11339:9:23" - }, - "scope": 4001, - "src": "11275:123:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3987, - "nodeType": "Block", - "src": "11478:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3983, - "name": "bytes32Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "11495:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 3985, - "indexExpression": { - "argumentTypes": null, - "id": 3984, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3978, - "src": "11510:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11495:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3982, - "id": 3986, - "nodeType": "Return", - "src": "11488:32:23" - } - ] - }, - "documentation": null, - "id": 3988, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytes32Value", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3978, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3988, - "src": "11429:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3977, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11429:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11428:19:23" - }, - "returnParameters": { - "id": 3982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3981, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3988, - "src": "11469:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3980, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11469:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11468:9:23" - }, - "scope": 4001, - "src": "11404:123:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3999, - "nodeType": "Block", - "src": "11610:47:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3995, - "name": "bytesStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "11627:12:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3997, - "indexExpression": { - "argumentTypes": null, - "id": 3996, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3990, - "src": "11640:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11627:23:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 3994, - "id": 3998, - "nodeType": "Return", - "src": "11620:30:23" - } - ] - }, - "documentation": null, - "id": 4000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3990, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "11556:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3989, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11556:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11555:19:23" - }, - "returnParameters": { - "id": 3994, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3993, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "11596:12:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3992, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11596:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11595:14:23" - }, - "scope": 4001, - "src": "11533:124:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 4002, - "src": "1662:9998:23" - } - ], - "src": "1227:10434:23" - }, - "legacyAST": { - "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/storage/EternalStorage.sol", - "exportedSymbols": { - "EternalStorage": [4001] - }, - "id": 4002, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3403, - "literals": ["solidity", "^", "0.5", ".0"], - "nodeType": "PragmaDirective", - "src": "1227:23:23" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@notice Stores and retrieves state data. It allows other contracts to implement better\nupgradability by separating the contract's logic from its state. If a bug is found, the\nEternalStorage owner can update its logic without the need to migrate its data, which might\nbe really expensive.\n@dev This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0.", - "fullyImplemented": true, - "id": 4001, - "linearizedBaseContracts": [4001], - "name": "EternalStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3407, - "name": "uintStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1776:48:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 3406, - "keyType": { - "id": 3404, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1784:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1776:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueType": { - "id": 3405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1795:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3411, - "name": "stringStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1830:49:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string)" - }, - "typeName": { - "id": 3410, - "keyType": { - "id": 3408, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1838:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1830:26:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string)" - }, - "valueType": { - "id": 3409, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1849:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3415, - "name": "addressStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1885:51:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "typeName": { - "id": 3414, - "keyType": { - "id": 3412, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1893:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1885:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - }, - "valueType": { - "id": 3413, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1904:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3419, - "name": "bytesStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1942:47:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "typeName": { - "id": 3418, - "keyType": { - "id": 3416, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1950:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1942:25:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes)" - }, - "valueType": { - "id": 3417, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1961:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3423, - "name": "boolStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "1995:45:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 3422, - "keyType": { - "id": 3420, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2003:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1995:24:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 3421, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3427, - "name": "intStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2046:46:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$", - "typeString": "mapping(bytes32 => int256)" - }, - "typeName": { - "id": 3426, - "keyType": { - "id": 3424, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2054:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2046:26:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_int256_$", - "typeString": "mapping(bytes32 => int256)" - }, - "valueType": { - "id": 3425, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "2065:6:23", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3431, - "name": "bytes32Storage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2098:51:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - }, - "typeName": { - "id": 3430, - "keyType": { - "id": 3428, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2106:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2098:27:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - }, - "valueType": { - "id": 3429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2117:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "name": "bytes32ArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2235:58:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[])" - }, - "typeName": { - "id": 3435, - "keyType": { - "id": 3432, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2243:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2235:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[])" - }, - "valueType": { - "baseType": { - "id": 3433, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2254:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3434, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2254:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3441, - "name": "uintArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2299:55:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[])" - }, - "typeName": { - "id": 3440, - "keyType": { - "id": 3437, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2307:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2299:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[])" - }, - "valueType": { - "baseType": { - "id": 3438, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2318:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3439, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2318:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3446, - "name": "addressArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2360:58:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[])" - }, - "typeName": { - "id": 3445, - "keyType": { - "id": 3442, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2368:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2360:29:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[])" - }, - "valueType": { - "baseType": { - "id": 3443, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2379:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2379:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3451, - "name": "stringArrayStorage", - "nodeType": "VariableDeclaration", - "scope": 4001, - "src": "2424:56:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string[])" - }, - "typeName": { - "id": 3450, - "keyType": { - "id": 3447, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2432:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "2424:28:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string[])" - }, - "valueType": { - "baseType": { - "id": 3448, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2443:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3449, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2443:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 3464, - "nodeType": "Block", - "src": "3876:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3458, - "name": "uintStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "3886:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3460, - "indexExpression": { - "argumentTypes": null, - "id": 3459, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "3898:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3886:17:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3461, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3455, - "src": "3906:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3886:26:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3463, - "nodeType": "ExpressionStatement", - "src": "3886:26:23" - } - ] - }, - "documentation": "///////////////\n/ set functions\n///////////////\n @notice Set the key values using the Overloaded `set` functions\n Ex- string version = \"0.0.1\"; replace to\n set(keccak256(abi.encodePacked(\"version\"), \"0.0.1\");\n same for the other variables as well some more example listed below\n ex1 - address securityTokenAddress = 0x123; replace to\n set(keccak256(abi.encodePacked(\"securityTokenAddress\"), 0x123);\n ex2 - bytes32 tokenDetails = \"I am ST20\"; replace to\n set(keccak256(abi.encodePacked(\"tokenDetails\"), \"I am ST20\");\n ex3 - mapping(string => address) ownedToken;\n set(keccak256(abi.encodePacked(\"ownedToken\", \"Chris\")), 0x123);\n ex4 - mapping(string => uint) tokenIndex;\n tokenIndex[\"TOKEN\"] = 1; replace to set(keccak256(abi.encodePacked(\"tokenIndex\", \"TOKEN\"), 1);\n ex5 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n {uint256 date, string name, address owner} etc.\n registeredSymbols[\"TOKEN\"].name = \"MyFristToken\"; replace to set(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"), \"MyFirstToken\");\n More generalized- set(keccak256(abi.encodePacked(\"registeredSymbols_\", \"keyname\"), \"value\");", - "id": 3465, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3456, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3453, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3465, - "src": "3837:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3452, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3837:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3455, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3465, - "src": "3851:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3454, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3851:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3836:30:23" - }, - "returnParameters": { - "id": 3457, - "nodeType": "ParameterList", - "parameters": [], - "src": "3876:0:23" - }, - "scope": 4001, - "src": "3824:95:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3478, - "nodeType": "Block", - "src": "3977:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3472, - "name": "addressStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "3987:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 3474, - "indexExpression": { - "argumentTypes": null, - "id": 3473, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "4002:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3987:20:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3475, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3469, - "src": "4010:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3987:29:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3477, - "nodeType": "ExpressionStatement", - "src": "3987:29:23" - } - ] - }, - "documentation": null, - "id": 3479, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3470, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3467, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "3938:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3466, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3938:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3469, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3479, - "src": "3952:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3952:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3937:30:23" - }, - "returnParameters": { - "id": 3471, - "nodeType": "ParameterList", - "parameters": [], - "src": "3977:0:23" - }, - "scope": 4001, - "src": "3925:98:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3492, - "nodeType": "Block", - "src": "4078:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3486, - "name": "boolStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "4088:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3488, - "indexExpression": { - "argumentTypes": null, - "id": 3487, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "4100:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4088:17:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3489, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3483, - "src": "4108:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4088:26:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3491, - "nodeType": "ExpressionStatement", - "src": "4088:26:23" - } - ] - }, - "documentation": null, - "id": 3493, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3481, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3493, - "src": "4042:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3480, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4042:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3483, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3493, - "src": "4056:11:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3482, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4056:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4041:27:23" - }, - "returnParameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [], - "src": "4078:0:23" - }, - "scope": 4001, - "src": "4029:92:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3506, - "nodeType": "Block", - "src": "4179:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3500, - "name": "bytes32Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "4189:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 3502, - "indexExpression": { - "argumentTypes": null, - "id": 3501, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3495, - "src": "4204:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4189:20:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3503, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3497, - "src": "4212:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "4189:29:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3505, - "nodeType": "ExpressionStatement", - "src": "4189:29:23" - } - ] - }, - "documentation": null, - "id": 3507, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3495, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3507, - "src": "4140:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3494, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4140:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3497, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3507, - "src": "4154:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3496, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4154:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4139:30:23" - }, - "returnParameters": { - "id": 3499, - "nodeType": "ParameterList", - "parameters": [], - "src": "4179:0:23" - }, - "scope": 4001, - "src": "4127:98:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3520, - "nodeType": "Block", - "src": "4289:45:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3514, - "name": "stringStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "4299:13:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string storage ref)" - } - }, - "id": 3516, - "indexExpression": { - "argumentTypes": null, - "id": 3515, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3509, - "src": "4313:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4299:19:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3517, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3511, - "src": "4321:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4299:28:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3519, - "nodeType": "ExpressionStatement", - "src": "4299:28:23" - } - ] - }, - "documentation": null, - "id": 3521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "set", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3509, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3521, - "src": "4244:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3508, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4244:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3511, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3521, - "src": "4258:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3510, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4258:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4243:36:23" - }, - "returnParameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [], - "src": "4289:0:23" - }, - "scope": 4001, - "src": "4231:103:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3564, - "nodeType": "Block", - "src": "4996:244:23", - "statements": [ - { - "assignments": [3531], - "declarations": [ - { - "constant": false, - "id": 3531, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3564, - "src": "5006:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3529, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5006:7:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3530, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5006:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3535, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3532, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "5032:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3534, - "indexExpression": { - "argumentTypes": null, - "id": 3533, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3523, - "src": "5052:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5032:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5006:51:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3537, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5075:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3538, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5084:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3539, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5084:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5098:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3536, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5067:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3543, - "nodeType": "ExpressionStatement", - "src": "5067:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3544, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5153:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3546, - "indexExpression": { - "argumentTypes": null, - "id": 3545, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3525, - "src": "5159:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5153:13:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3547, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5169:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3552, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3548, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5175:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3549, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5175:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5190:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5175:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5169:23:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5153:39:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3554, - "nodeType": "ExpressionStatement", - "src": "5153:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3555, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5202:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3557, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5202:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3558, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "5217:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[] storage pointer" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5217:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5232:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5217:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5202:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3563, - "nodeType": "ExpressionStatement", - "src": "5202:31:23" - } - ] - }, - "documentation": "/////////////////////////\n @notice Function used to delete the array element.\n Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n For deleting the item from array developers needs to create a funtion for that similarly\n in this case we have the helper function deleteArrayBytes32() which will do it for us\n deleteArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1), 3); -- it will delete the index 3", - "id": 3565, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3523, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3565, - "src": "4957:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3522, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4957:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3525, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3565, - "src": "4971:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4971:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4956:30:23" - }, - "returnParameters": { - "id": 3527, - "nodeType": "ParameterList", - "parameters": [], - "src": "4996:0:23" - }, - "scope": 4001, - "src": "4929:311:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3608, - "nodeType": "Block", - "src": "5379:244:23", - "statements": [ - { - "assignments": [3575], - "declarations": [ - { - "constant": false, - "id": 3575, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3608, - "src": "5389:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3573, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5389:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3574, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5389:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3579, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3576, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "5415:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3578, - "indexExpression": { - "argumentTypes": null, - "id": 3577, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3567, - "src": "5435:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5415:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5389:51:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3581, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3569, - "src": "5458:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3582, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5467:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5467:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5458:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5481:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3580, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5450:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3587, - "nodeType": "ExpressionStatement", - "src": "5450:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3588, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5536:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3590, - "indexExpression": { - "argumentTypes": null, - "id": 3589, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3569, - "src": "5542:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5536:13:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3591, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5552:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3596, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3592, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5558:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5558:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5573:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5558:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5552:23:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "5536:39:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3598, - "nodeType": "ExpressionStatement", - "src": "5536:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3599, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5585:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5585:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3602, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3575, - "src": "5600:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[] storage pointer" - } - }, - "id": 3603, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5600:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5615:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5600:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5585:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3607, - "nodeType": "ExpressionStatement", - "src": "5585:31:23" - } - ] - }, - "documentation": null, - "id": 3609, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayBytes32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3570, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3567, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "5340:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3566, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5340:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3569, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3609, - "src": "5354:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3568, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5354:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5339:30:23" - }, - "returnParameters": { - "id": 3571, - "nodeType": "ParameterList", - "parameters": [], - "src": "5379:0:23" - }, - "scope": 4001, - "src": "5312:311:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3652, - "nodeType": "Block", - "src": "5756:241:23", - "statements": [ - { - "assignments": [3619], - "declarations": [ - { - "constant": false, - "id": 3619, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3652, - "src": "5766:23:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5766:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3618, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5766:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3623, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3620, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "5792:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3622, - "indexExpression": { - "argumentTypes": null, - "id": 3621, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "5809:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5792:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5766:48:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5832:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3626, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5841:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5841:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5832:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5855:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3624, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5824:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5824:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3631, - "nodeType": "ExpressionStatement", - "src": "5824:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3632, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5910:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3634, - "indexExpression": { - "argumentTypes": null, - "id": 3633, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5916:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5910:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3635, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5926:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3640, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3636, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5932:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3637, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5932:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3638, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5947:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5932:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5926:23:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5910:39:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3642, - "nodeType": "ExpressionStatement", - "src": "5910:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3643, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5959:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5959:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3646, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3619, - "src": "5974:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[] storage pointer" - } - }, - "id": 3647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5974:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5989:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5974:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5959:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3651, - "nodeType": "ExpressionStatement", - "src": "5959:31:23" - } - ] - }, - "documentation": null, - "id": 3653, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3611, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3653, - "src": "5717:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3610, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5717:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3613, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3653, - "src": "5731:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5731:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5716:30:23" - }, - "returnParameters": { - "id": 3615, - "nodeType": "ParameterList", - "parameters": [], - "src": "5756:0:23" - }, - "scope": 4001, - "src": "5692:305:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3696, - "nodeType": "Block", - "src": "6134:242:23", - "statements": [ - { - "assignments": [3663], - "declarations": [ - { - "constant": false, - "id": 3663, - "name": "array", - "nodeType": "VariableDeclaration", - "scope": 3696, - "src": "6144:22:23", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 3661, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6144:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3662, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6144:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3667, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3664, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "6169:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3666, - "indexExpression": { - "argumentTypes": null, - "id": 3665, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "6188:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6169:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6144:49:23" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3669, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3657, - "src": "6211:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6220:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3671, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6220:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6211:21:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e6465782073686f756c64206c657373207468616e206c656e677468206f6620746865206172726179", - "id": 3673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6234:44:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - }, - "value": "Index should less than length of the array" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e0f0e76dee372f4763055ed839f0f90a997852cbda7aa9e9e4d0c15bfa6bba8e", - "typeString": "literal_string \"Index should less than length of the array\"" - } - ], - "id": 3668, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "6203:7:23", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6203:76:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "6203:76:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3676, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6289:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3678, - "indexExpression": { - "argumentTypes": null, - "id": 3677, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3657, - "src": "6295:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6289:13:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3679, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6305:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3684, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3680, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6311:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6311:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3682, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6326:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6311:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6305:23:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "src": "6289:39:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3686, - "nodeType": "ExpressionStatement", - "src": "6289:39:23" - }, - { - "expression": { - "argumentTypes": null, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3687, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6338:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3689, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6338:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3690, - "name": "array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3663, - "src": "6353:5:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string storage ref[] storage pointer" - } - }, - "id": 3691, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6353:12:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6368:1:23", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6353:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6338:31:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3695, - "nodeType": "ExpressionStatement", - "src": "6338:31:23" - } - ] - }, - "documentation": null, - "id": 3697, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deleteArrayString", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3658, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3655, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3697, - "src": "6095:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3654, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6095:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3657, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3697, - "src": "6109:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3656, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6109:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6094:30:23" - }, - "returnParameters": { - "id": 3659, - "nodeType": "ParameterList", - "parameters": [], - "src": "6134:0:23" - }, - "scope": 4001, - "src": "6068:308:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3711, - "nodeType": "Block", - "src": "7049:55:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3708, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3701, - "src": "7090:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3704, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7059:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3706, - "indexExpression": { - "argumentTypes": null, - "id": 3705, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3699, - "src": "7079:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7059:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7059:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7059:38:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3710, - "nodeType": "ExpressionStatement", - "src": "7059:38:23" - } - ] - }, - "documentation": "/////////////////////////\n/ pushArray functions\n////////////////////////\n @notice Below are the helper functions to facilitate storing arrays of different data types.\n Ex1- mapping(address => bytes32[]) tokensOwnedByTicker;\n tokensOwnedByTicker[owner] = tokensOwnedByTicker[owner].push(\"xyz\"); replace with\n pushArray(keccak256(abi.encodePacked(\"tokensOwnedByTicker\", owner), \"xyz\");\n @notice use to store the values for the array\n @param _key bytes32 type\n @param _value [uint256, string, bytes32, address] any of the data type in array", - "id": 3712, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3702, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3699, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3712, - "src": "7010:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3698, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7010:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3701, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3712, - "src": "7024:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3700, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7024:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7009:30:23" - }, - "returnParameters": { - "id": 3703, - "nodeType": "ParameterList", - "parameters": [], - "src": "7049:0:23" - }, - "scope": 4001, - "src": "6991:113:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3726, - "nodeType": "Block", - "src": "7168:55:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3723, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3716, - "src": "7209:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3719, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "7178:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3721, - "indexExpression": { - "argumentTypes": null, - "id": 3720, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3714, - "src": "7198:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7178:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7178:30:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) returns (uint256)" - } - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7178:38:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3725, - "nodeType": "ExpressionStatement", - "src": "7178:38:23" - } - ] - }, - "documentation": null, - "id": 3727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3714, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "7129:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3713, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7129:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3716, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3727, - "src": "7143:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3715, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7143:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7128:30:23" - }, - "returnParameters": { - "id": 3718, - "nodeType": "ParameterList", - "parameters": [], - "src": "7168:0:23" - }, - "scope": 4001, - "src": "7110:113:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3741, - "nodeType": "Block", - "src": "7293:54:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3738, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3731, - "src": "7333:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3734, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "7303:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3736, - "indexExpression": { - "argumentTypes": null, - "id": 3735, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3729, - "src": "7322:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7303:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7303:29:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$_t_uint256_$", - "typeString": "function (string storage ref) returns (uint256)" - } - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7303:37:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3740, - "nodeType": "ExpressionStatement", - "src": "7303:37:23" - } - ] - }, - "documentation": null, - "id": 3742, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3732, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3729, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3742, - "src": "7248:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3728, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7248:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3731, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3742, - "src": "7262:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3730, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7262:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7247:36:23" - }, - "returnParameters": { - "id": 3733, - "nodeType": "ParameterList", - "parameters": [], - "src": "7293:0:23" - }, - "scope": 4001, - "src": "7229:118:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3756, - "nodeType": "Block", - "src": "7411:52:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3753, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "7449:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3749, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "7421:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3751, - "indexExpression": { - "argumentTypes": null, - "id": 3750, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "7438:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7421:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7421:27:23", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7421:35:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3755, - "nodeType": "ExpressionStatement", - "src": "7421:35:23" - } - ] - }, - "documentation": null, - "id": 3757, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "pushArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3744, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3757, - "src": "7372:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3743, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3746, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3757, - "src": "7386:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7386:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:30:23" - }, - "returnParameters": { - "id": 3748, - "nodeType": "ParameterList", - "parameters": [], - "src": "7411:0:23" - }, - "scope": 4001, - "src": "7353:110:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3771, - "nodeType": "Block", - "src": "7858:51:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3765, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "7868:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3767, - "indexExpression": { - "argumentTypes": null, - "id": 3766, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3759, - "src": "7888:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7868:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3768, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3762, - "src": "7896:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "7868:34:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3770, - "nodeType": "ExpressionStatement", - "src": "7868:34:23" - } - ] - }, - "documentation": "//////////////////////\n/ Set Array functions\n/////////////////////\n @notice used to intialize the array\n Ex1- mapping (address => address[]) public reputation;\n reputation[0x1] = new address[](0); It can be replaced as\n setArray(hash('reputation', 0x1), new address[](0));", - "id": 3772, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3759, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3772, - "src": "7810:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3758, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7810:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3762, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3772, - "src": "7824:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7824:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3761, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7824:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7809:39:23" - }, - "returnParameters": { - "id": 3764, - "nodeType": "ParameterList", - "parameters": [], - "src": "7858:0:23" - }, - "scope": 4001, - "src": "7792:117:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3786, - "nodeType": "Block", - "src": "7981:48:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3780, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "7991:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3782, - "indexExpression": { - "argumentTypes": null, - "id": 3781, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3774, - "src": "8008:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7991:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3783, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3777, - "src": "8016:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "7991:31:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3785, - "nodeType": "ExpressionStatement", - "src": "7991:31:23" - } - ] - }, - "documentation": null, - "id": 3787, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3778, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3774, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3787, - "src": "7933:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3773, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7933:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3777, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3787, - "src": "7947:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7947:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3776, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7947:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7932:39:23" - }, - "returnParameters": { - "id": 3779, - "nodeType": "ParameterList", - "parameters": [], - "src": "7981:0:23" - }, - "scope": 4001, - "src": "7915:114:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3801, - "nodeType": "Block", - "src": "8101:51:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3795, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "8111:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3797, - "indexExpression": { - "argumentTypes": null, - "id": 3796, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3789, - "src": "8131:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8111:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3798, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3792, - "src": "8139:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "src": "8111:34:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3800, - "nodeType": "ExpressionStatement", - "src": "8111:34:23" - } - ] - }, - "documentation": null, - "id": 3802, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3789, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3802, - "src": "8053:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3788, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8053:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3792, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3802, - "src": "8067:23:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3790, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8067:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3791, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8067:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8052:39:23" - }, - "returnParameters": { - "id": 3794, - "nodeType": "ParameterList", - "parameters": [], - "src": "8101:0:23" - }, - "scope": 4001, - "src": "8035:117:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3816, - "nodeType": "Block", - "src": "8223:50:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3810, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "8233:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3812, - "indexExpression": { - "argumentTypes": null, - "id": 3811, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3804, - "src": "8252:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8233:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3813, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3807, - "src": "8260:6:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", - "typeString": "string memory[] memory" - } - }, - "src": "8233:33:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3815, - "nodeType": "ExpressionStatement", - "src": "8233:33:23" - } - ] - }, - "documentation": null, - "id": 3817, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArray", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3804, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3817, - "src": "8176:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3803, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8176:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3807, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3817, - "src": "8190:22:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_memory_$dyn_memory_ptr", - "typeString": "string[]" - }, - "typeName": { - "baseType": { - "id": 3805, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8190:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 3806, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8190:8:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", - "typeString": "string[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8175:38:23" - }, - "returnParameters": { - "id": 3809, - "nodeType": "ParameterList", - "parameters": [], - "src": "8223:0:23" - }, - "scope": 4001, - "src": "8158:115:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3829, - "nodeType": "Block", - "src": "8850:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3825, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "8867:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3827, - "indexExpression": { - "argumentTypes": null, - "id": 3826, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3819, - "src": "8887:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8867:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 3824, - "id": 3828, - "nodeType": "Return", - "src": "8860:32:23" - } - ] - }, - "documentation": "//////////////////////\n getArray functions\n//////////////////////\n @notice Get functions to get the array of the required data type\n Ex1- mapping(address => bytes32[]) tokensOwnedByOwner;\n getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)); It return the bytes32 array\n Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with\n getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)).length;", - "id": 3830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3819, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "8797:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3818, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8797:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8796:14:23" - }, - "returnParameters": { - "id": 3824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3823, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "8832:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3821, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8832:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3822, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8832:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8831:18:23" - }, - "scope": 4001, - "src": "8772:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3842, - "nodeType": "Block", - "src": "8983:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3838, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "9000:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3840, - "indexExpression": { - "argumentTypes": null, - "id": 3839, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "9020:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9000:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "functionReturnParameters": 3837, - "id": 3841, - "nodeType": "Return", - "src": "8993:32:23" - } - ] - }, - "documentation": null, - "id": 3843, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayBytes32", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3843, - "src": "8930:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3831, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8930:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8929:14:23" - }, - "returnParameters": { - "id": 3837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3836, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3843, - "src": "8965:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 3834, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8965:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3835, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8965:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8964:18:23" - }, - "scope": 4001, - "src": "8905:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3855, - "nodeType": "Block", - "src": "9113:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3851, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "9130:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3853, - "indexExpression": { - "argumentTypes": null, - "id": 3852, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "9147:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9130:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "functionReturnParameters": 3850, - "id": 3854, - "nodeType": "Return", - "src": "9123:29:23" - } - ] - }, - "documentation": null, - "id": 3856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getArrayUint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3845, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "9060:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3844, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9060:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9059:14:23" - }, - "returnParameters": { - "id": 3850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3849, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3856, - "src": "9095:16:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3847, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9095:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3848, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9095:9:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9094:18:23" - }, - "scope": 4001, - "src": "9038:121:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3873, - "nodeType": "Block", - "src": "9679:59:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3865, - "name": "addressArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "9689:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(bytes32 => address[] storage ref)" - } - }, - "id": 3868, - "indexExpression": { - "argumentTypes": null, - "id": 3866, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3858, - "src": "9709:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9689:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3869, - "indexExpression": { - "argumentTypes": null, - "id": 3867, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3860, - "src": "9715:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9689:33:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3870, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3862, - "src": "9725:6:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9689:42:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "9689:42:23" - } - ] - }, - "documentation": "////////////////////////////////\n setArrayIndexValue() functions\n////////////////////////////////\n @notice set the value of particular index of the address array\n Ex1- mapping(bytes32 => address[]) moduleList;\n general way is -- moduleList[moduleType][index] = temp;\n It can be re-write as -- setArrayIndexValue(keccak256(abi.encodePacked('moduleList', moduleType)), index, temp);", - "id": 3874, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3858, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9624:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3857, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9624:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3860, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9638:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3859, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9638:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3862, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3874, - "src": "9654:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3861, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9654:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9623:46:23" - }, - "returnParameters": { - "id": 3864, - "nodeType": "ParameterList", - "parameters": [], - "src": "9679:0:23" - }, - "scope": 4001, - "src": "9596:142:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3891, - "nodeType": "Block", - "src": "9827:56:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3883, - "name": "uintArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "9837:16:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", - "typeString": "mapping(bytes32 => uint256[] storage ref)" - } - }, - "id": 3886, - "indexExpression": { - "argumentTypes": null, - "id": 3884, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3876, - "src": "9854:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9837:22:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 3887, - "indexExpression": { - "argumentTypes": null, - "id": 3885, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3878, - "src": "9860:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9837:30:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3888, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3880, - "src": "9870:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9837:39:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3890, - "nodeType": "ExpressionStatement", - "src": "9837:39:23" - } - ] - }, - "documentation": null, - "id": 3892, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3876, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9772:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3875, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9772:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3878, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9786:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3877, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9786:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3880, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3892, - "src": "9802:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9802:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9771:46:23" - }, - "returnParameters": { - "id": 3882, - "nodeType": "ParameterList", - "parameters": [], - "src": "9827:0:23" - }, - "scope": 4001, - "src": "9744:139:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3909, - "nodeType": "Block", - "src": "9972:59:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "bytes32ArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "9982:19:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$", - "typeString": "mapping(bytes32 => bytes32[] storage ref)" - } - }, - "id": 3904, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3894, - "src": "10002:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9982:25:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 3905, - "indexExpression": { - "argumentTypes": null, - "id": 3903, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3896, - "src": "10008:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9982:33:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3906, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "10018:6:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9982:42:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 3908, - "nodeType": "ExpressionStatement", - "src": "9982:42:23" - } - ] - }, - "documentation": null, - "id": 3910, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3894, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9917:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3893, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9917:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3896, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9931:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3895, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9931:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3898, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3910, - "src": "9947:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3897, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9947:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9916:46:23" - }, - "returnParameters": { - "id": 3900, - "nodeType": "ParameterList", - "parameters": [], - "src": "9972:0:23" - }, - "scope": 4001, - "src": "9889:142:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3927, - "nodeType": "Block", - "src": "10126:58:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3919, - "name": "stringArrayStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "10136:18:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_string_storage_$dyn_storage_$", - "typeString": "mapping(bytes32 => string storage ref[] storage ref)" - } - }, - "id": 3922, - "indexExpression": { - "argumentTypes": null, - "id": 3920, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3912, - "src": "10155:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10136:24:23", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$dyn_storage", - "typeString": "string storage ref[] storage ref" - } - }, - "id": 3923, - "indexExpression": { - "argumentTypes": null, - "id": 3921, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3914, - "src": "10161:6:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10136:32:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3924, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3916, - "src": "10171:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "10136:41:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 3926, - "nodeType": "ExpressionStatement", - "src": "10136:41:23" - } - ] - }, - "documentation": null, - "id": 3928, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setArrayIndexValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3917, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3912, - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10065:12:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3911, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10065:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3914, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10079:14:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3913, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10079:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3916, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 3928, - "src": "10095:20:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3915, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "10095:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10064:52:23" - }, - "returnParameters": { - "id": 3918, - "nodeType": "ParameterList", - "parameters": [], - "src": "10126:0:23" - }, - "scope": 4001, - "src": "10037:147:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3939, - "nodeType": "Block", - "src": "10970:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3935, - "name": "uintStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "10987:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 3937, - "indexExpression": { - "argumentTypes": null, - "id": 3936, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3930, - "src": "10999:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10987:22:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3934, - "id": 3938, - "nodeType": "Return", - "src": "10980:29:23" - } - ] - }, - "documentation": "Public getters functions\n/////////////////\n @notice Get function use to get the value of the singleton state variables\n Ex1- string public version = \"0.0.1\";\n string _version = getString(keccak256(abi.encodePacked(\"version\"));\n Ex2 - assert(temp1 == temp2); replace to\n assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2));\n Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as\n {uint256 date, string name, address owner} etc.\n string _name = getString(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"));", - "id": 3940, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUintValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3931, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3930, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3940, - "src": "10921:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3929, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10921:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10920:19:23" - }, - "returnParameters": { - "id": 3934, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3933, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3940, - "src": "10961:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10961:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10960:9:23" - }, - "scope": 4001, - "src": "10899:117:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3951, - "nodeType": "Block", - "src": "11090:46:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3947, - "name": "boolStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "11107:11:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3949, - "indexExpression": { - "argumentTypes": null, - "id": 3948, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "11119:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11107:22:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3946, - "id": 3950, - "nodeType": "Return", - "src": "11100:29:23" - } - ] - }, - "documentation": null, - "id": 3952, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBoolValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3942, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "11044:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3941, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11044:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11043:19:23" - }, - "returnParameters": { - "id": 3946, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3945, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3952, - "src": "11084:4:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3944, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11084:4:23", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11083:6:23" - }, - "scope": 4001, - "src": "11022:114:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3963, - "nodeType": "Block", - "src": "11221:48:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3959, - "name": "stringStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3411, - "src": "11238:13:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_string_storage_$", - "typeString": "mapping(bytes32 => string storage ref)" - } - }, - "id": 3961, - "indexExpression": { - "argumentTypes": null, - "id": 3960, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3954, - "src": "11252:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11238:24:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 3958, - "id": 3962, - "nodeType": "Return", - "src": "11231:31:23" - } - ] - }, - "documentation": null, - "id": 3964, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStringValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3955, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3954, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3964, - "src": "11166:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3953, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11166:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11165:19:23" - }, - "returnParameters": { - "id": 3958, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3957, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3964, - "src": "11206:13:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3956, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "11206:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11205:15:23" - }, - "scope": 4001, - "src": "11142:127:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3975, - "nodeType": "Block", - "src": "11349:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3971, - "name": "addressStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3415, - "src": "11366:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", - "typeString": "mapping(bytes32 => address)" - } - }, - "id": 3973, - "indexExpression": { - "argumentTypes": null, - "id": 3972, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3966, - "src": "11381:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11366:25:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3970, - "id": 3974, - "nodeType": "Return", - "src": "11359:32:23" - } - ] - }, - "documentation": null, - "id": 3976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getAddressValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3966, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3976, - "src": "11300:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3965, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11300:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11299:19:23" - }, - "returnParameters": { - "id": 3970, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3969, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3976, - "src": "11340:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3968, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11340:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11339:9:23" - }, - "scope": 4001, - "src": "11275:123:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3987, - "nodeType": "Block", - "src": "11478:49:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3983, - "name": "bytes32Storage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3431, - "src": "11495:14:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", - "typeString": "mapping(bytes32 => bytes32)" - } - }, - "id": 3985, - "indexExpression": { - "argumentTypes": null, - "id": 3984, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3978, - "src": "11510:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11495:25:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3982, - "id": 3986, - "nodeType": "Return", - "src": "11488:32:23" - } - ] - }, - "documentation": null, - "id": 3988, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytes32Value", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3978, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 3988, - "src": "11429:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3977, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11429:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11428:19:23" - }, - "returnParameters": { - "id": 3982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3981, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3988, - "src": "11469:7:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3980, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11469:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11468:9:23" - }, - "scope": 4001, - "src": "11404:123:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3999, - "nodeType": "Block", - "src": "11610:47:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3995, - "name": "bytesStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3419, - "src": "11627:12:23", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$", - "typeString": "mapping(bytes32 => bytes storage ref)" - } - }, - "id": 3997, - "indexExpression": { - "argumentTypes": null, - "id": 3996, - "name": "_variable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3990, - "src": "11640:9:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11627:23:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 3994, - "id": 3998, - "nodeType": "Return", - "src": "11620:30:23" - } - ] - }, - "documentation": null, - "id": 4000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBytesValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3990, - "name": "_variable", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "11556:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3989, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11556:7:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11555:19:23" - }, - "returnParameters": { - "id": 3994, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3993, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4000, - "src": "11596:12:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3992, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11596:5:23", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11595:14:23" - }, - "scope": 4001, - "src": "11533:124:23", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 4002, - "src": "1662:9998:23" - } - ], - "src": "1227:10434:23" - }, - "compiler": { - "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.539Z", - "devdoc": { - "details": "This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0.", - "methods": {} - }, - "userdoc": { - "methods": { - "getArrayAddress(bytes32)": { - "notice": "////////////////////// getArray functions //////////////////////Get functions to get the array of the required data type Ex1- mapping(address => bytes32[]) tokensOwnedByOwner; getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)); It return the bytes32 array Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with getArrayBytes32(keccak256(abi.encodePacked(\"tokensOwnedByOwner\", 0x1)).length;" - }, - "getUintValue(bytes32)": { - "notice": "Public getters functions /////////////////Get function use to get the value of the singleton state variables Ex1- string public version = \"0.0.1\"; string _version = getString(keccak256(abi.encodePacked(\"version\")); Ex2 - assert(temp1 == temp2); replace to assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2)); Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as {uint256 date, string name, address owner} etc. string _name = getString(keccak256(abi.encodePacked(\"registeredSymbols_name\", \"TOKEN\"));" - } - }, - "notice": "Stores and retrieves state data. It allows other contracts to implement better upgradability by separating the contract's logic from its state. If a bug is found, the EternalStorage owner can update its logic without the need to migrate its data, which might be really expensive." - } -} diff --git a/build/contracts/Hackathon.json b/build/contracts/Hackathon.json index 427088e..96b70ee 100644 --- a/build/contracts/Hackathon.json +++ b/build/contracts/Hackathon.json @@ -24,7 +24,6 @@ "type": "address" } ], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -350,7 +349,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -360,12 +358,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -375,12 +371,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -390,48 +384,38 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [], "name": "description", "outputs": [ @@ -441,12 +425,10 @@ "type": "bytes32" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getEvaluationStatus", "outputs": [ @@ -456,12 +438,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -471,12 +451,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -486,12 +464,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -527,12 +503,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -568,12 +542,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getWinnersIds", "outputs": [ @@ -593,12 +565,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "id", "outputs": [ @@ -608,12 +578,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -629,12 +597,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -650,12 +616,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "name", "outputs": [ @@ -665,48 +629,38 @@ "type": "bytes32" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "openEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "publishRank", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -732,12 +686,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -747,30 +699,24 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -780,12 +726,10 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -795,12 +739,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -815,12 +757,10 @@ ], "name": "submitEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -861,12 +801,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -881,12 +819,10 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -906,12 +842,10 @@ ], "name": "allocatePrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -921,134 +855,147 @@ ], "name": "withdrawPrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_description\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"initialOrganizer\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"secondPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thirdPlacePrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organizer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeAllocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"firstPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thirdPrize\",\"type\":\"uint256\"}],\"name\":\"allocatePrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"id\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"winnerAddress\",\"type\":\"address\"}],\"name\":\"withdrawPrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For the payment functionality, the \\\"withdraw pattern\\\" is being implemented for this contract. The ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.\",\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"details\":\"It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners.\"},\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"constructor\":{\"params\":{\"_description\":\"{bytes32} Hackathon's description. Optional.\",\"_id\":\"{uint256} Hackathon's unique indentifier\",\"_name\":\"{bytes32} Hackathon's name. Required.\"}},\"getEvaluationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getWinnersIds()\":{\"return\":\"{uint256} First place's id{uint256} Second place's id{uint256} Third place's id\"},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}},\"withdrawPrize(address)\":{\"details\":\"Winners must implement IPayable to receive funds.\"}}},\"userdoc\":{\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"notice\":\"Allows the organizer to allocate funds that's going to be distributed to winners.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"constructor\":\"Creates a new Hackathon contract with a specific _id, _name, desciption, and a specific organizer.\",\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"},\"withdrawPrize(address)\":{\"notice\":\"Allows withdrawing prizes to winners.\"}},\"notice\":\"Represents a hackathon contest, where organizers can control the stages/phases of the contest (such as registration, submission, evaluation and results) as well as pay prizes to the winners.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":\"Hackathon\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xc15a9e0ef31fce09f610aa64da88dbf3f256af120e0c94d4b90dca958cc61a0f\",\"urls\":[\"bzz-raw://9597586371e6012927afcecc19997345b541dab8882a8cb7cc7e8f46a3f60838\",\"dweb:/ipfs/QmdUxhk9iwYeY1WNHcAxFDTMFoMznLd36FCko9AmwYwDaJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xe3fdb779273bfa141a141ef263c9792767c35b57403687a37520a927d09b6047\",\"urls\":[\"bzz-raw://adca681bf59d48162c48ef671ac1de8620f3c602059605cadd2bd536b34210d6\",\"dweb:/ipfs/QmXjvH1oQu9WoyzbCEVWtEGwqQ3ea3uXDgfV3qFroUo3uz\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620035f8380380620035f8833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000db816001600160e01b036200019216565b50849150600090501a60f81b7fff00000000000000000000000000000000000000000000000000000000000000166200017557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b50602292909255602355602455602b805460ff1916905562000424565b620001a8816200022c60201b62002cef1760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620002269290916200027e811b620025c117901c565b600a5550565b62000247816004620002fa60201b62002e2e1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015620002f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200030f82826001600160e01b03620003a116565b156200037c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000404576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620035d66022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6131a280620004346000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108ea565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108f0565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cfe565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d0a565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d4a565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d9565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b031661112c565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab611147565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611152565b34801561052557600080fd5b506104bd61122d565b34801561053a57600080fd5b506102ab61123b565b34801561054f57600080fd5b506102ab611244565b34801561056457600080fd5b506102666112e2565b34801561057957600080fd5b506105826112e8565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112f6565b3480156105eb57600080fd5b506102ab6116d4565b34801561060057600080fd5b506102ab611770565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c36565b34801561064857600080fd5b506104bd611c83565b34801561065d57600080fd5b506102ab611c8c565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d26565b3480156106a557600080fd5b50610266611d73565b3480156106ba57600080fd5b506102ab611d79565b3480156106cf57600080fd5b506102ab611e12565b6102ab611ead565b3480156106ec57600080fd5b506104bd611f25565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f2e565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f7b565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120e7565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120fa565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b5080359060208101359060400135612103565b3480156107f757600080fd5b506102ab6122bc565b6000806000806000856108128161235b565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61085d612eaf565b6001888154811061086a57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff16610940576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610997576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109ea576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a325760405162461bcd60e51b8152600401808060200182810382526032815260200180612fce6032913960400191505060405180910390fd5b81610a3c81612362565b610a8d576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b175750506011546025546026546001600160a01b0390921692509060019060ff1615610b055760405162461bcd60e51b81526004018080602001828103825260228152602001806130436022913960400191505060405180910390fd5b6026805460ff19166001179055610c54565b6017546001600160a01b0387811691161415610b9a5750506017546027546028546001600160a01b0390921692509060029060ff1615610b885760405162461bcd60e51b815260040180806020018281038252602381526020018061314b6023913960400191505060405180910390fd5b6028805460ff19166001179055610c54565b601d546001600160a01b0387811691161415610c1d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c0b5760405162461bcd60e51b81526004018080602001828103825260228152602001806130a46022913960400191505060405180910390fd5b602a805460ff19166001179055610c54565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130006043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b5050505050505050505050565b610d07816123a9565b50565b610d468282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124eb92505050565b5050565b600e5460ff16610d98576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610da1336120e7565b610ddc5760405162461bcd60e51b815260040180806020018281038252602b815260200180612f4f602b913960400191505060405180910390fd5b828114610e1a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130c66033913960400191505060405180910390fd5b6002548314610e5a5760405162461bcd60e51b815260040180806020018281038252603f815260200180613065603f913960400191505060405180910390fd5b600060025411610eb1576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612f2d6022913960400191505060405180910390fd5b60005b600254811015611079576000868683818110610f2657fe5b9050602002013590506000858584818110610f3d57fe5b9050602002013560ff169050610f528261235b565b610f95576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9e8261251b565b610fe6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fef816125b5565b611030576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103f57fe5b906000526020600020906006020190506110698260ff1682600501546125c190919063ffffffff16565b6005909101555050600101610f0e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b600061113f60048363ffffffff61262216565b90505b919050565b61115033612689565b565b6000808080806001600160a01b0386166111aa576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6111b2612eaf565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611150336126b9565b600354610100900460ff1615611296576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61129f3361112c565b6112da5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506126fc565b60245481565b600f54601554601b54909192565b60035460009060ff16611349576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166113ab576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316611406576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611476576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611481612eaf565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106115e957fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546116809163ffffffff6125c116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611724576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61172d3361112c565b6117685760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061274c565b60035460ff16156117bf576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff1615611811576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561185e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118673361112c565b6118a25760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b60215460ff16156118f3576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b600060025411611940576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611948612eaf565b611950612eaf565b611958612eaf565b611960612eaf565b60005b600154811015611a4b576001818154811061197a57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119f257508160a001518560a00151105b156119fc57611a43565b8360a001518560a001511115611a16578493929150611a43565b8260a001518560a001511115611a2f5784929150611a43565b8160a001518560a001511115611a43578491505b600101611963565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c3f3361112c565b611c7a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d078161278c565b600e5460ff1690565b600e5460ff16611cda576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611ce33361112c565b611d1e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061291f565b611d2f3361112c565b611d6a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d0781612689565b60225481565b600e5460ff1615611dc6576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dcf3361112c565b611e0a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061295f565b60035460ff1615611e61576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e6a3361112c565b611ea55760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506129a9565b60003411611eec5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0c6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f373361112c565b611f725760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d07816129f3565b81611f858161235b565b611fc8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fd28161251b565b61201a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661206d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061207c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b600061113f60058363ffffffff61262216565b610d0781612a6a565b61210c3361112c565b6121475760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b602b5460ff161561219f576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006121c1826121b5868663ffffffff6125c116565b9063ffffffff6125c116565b905030318111156122035760405162461bcd60e51b815260040180806020018281038252603081526020018061311b6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff1661230f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123183361112c565b6123535760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b611150612b45565b6001541190565b6011546000906001600160a01b038381169116148061238e57506017546001600160a01b038381169116145b8061113f575050601d546001600160a01b0390811691161490565b806123b38161235b565b6123f6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124008161251b565b1561244a576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061245957fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250612492919063ffffffff6125c116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d465761251382828151811061250657fe5b6020026020010151612a6a565b6001016124ee565b60006125268261235b565b61253257506000611142565b61253a612eaf565b6001838154811061254757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561261b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166126695760405162461bcd60e51b81526004018080602001828103825260228152602001806130f96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61269281612b90565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6126c281612bd3565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a546126f690600163ffffffff612c1b16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61279581612c78565b600c546127a0612ee4565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6129fc81612cef565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a546126f6916125c1565b80612a748161235b565b612ab7576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612ac18161251b565b612b09576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b1857fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612492906001612c1b565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612b9981612d37565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612bcd90600163ffffffff612c1b16565b60075550565b612be460048263ffffffff612d7f16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612c72576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612c8181612de6565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612bcd916125c1565b612d0060048263ffffffff612e2e16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612d4860058263ffffffff612d7f16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d898282612622565b612dc45760405162461bcd60e51b8152600401808060200182810382526021815260200180612fad6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612df760058263ffffffff612e2e16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612e388282612622565b15612e8a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820d3fc6eadc7d287f863a2ee4ffbede7533e2750d1d91626897beab69d7a1893ef64736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108ea565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108f0565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cfe565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d0a565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d4a565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d9565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b031661112c565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab611147565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611152565b34801561052557600080fd5b506104bd61122d565b34801561053a57600080fd5b506102ab61123b565b34801561054f57600080fd5b506102ab611244565b34801561056457600080fd5b506102666112e2565b34801561057957600080fd5b506105826112e8565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112f6565b3480156105eb57600080fd5b506102ab6116d4565b34801561060057600080fd5b506102ab611770565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c36565b34801561064857600080fd5b506104bd611c83565b34801561065d57600080fd5b506102ab611c8c565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d26565b3480156106a557600080fd5b50610266611d73565b3480156106ba57600080fd5b506102ab611d79565b3480156106cf57600080fd5b506102ab611e12565b6102ab611ead565b3480156106ec57600080fd5b506104bd611f25565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f2e565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f7b565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120e7565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120fa565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b5080359060208101359060400135612103565b3480156107f757600080fd5b506102ab6122bc565b6000806000806000856108128161235b565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61085d612eaf565b6001888154811061086a57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff16610940576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610997576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109ea576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a325760405162461bcd60e51b8152600401808060200182810382526032815260200180612fce6032913960400191505060405180910390fd5b81610a3c81612362565b610a8d576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b175750506011546025546026546001600160a01b0390921692509060019060ff1615610b055760405162461bcd60e51b81526004018080602001828103825260228152602001806130436022913960400191505060405180910390fd5b6026805460ff19166001179055610c54565b6017546001600160a01b0387811691161415610b9a5750506017546027546028546001600160a01b0390921692509060029060ff1615610b885760405162461bcd60e51b815260040180806020018281038252602381526020018061314b6023913960400191505060405180910390fd5b6028805460ff19166001179055610c54565b601d546001600160a01b0387811691161415610c1d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c0b5760405162461bcd60e51b81526004018080602001828103825260228152602001806130a46022913960400191505060405180910390fd5b602a805460ff19166001179055610c54565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130006043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b5050505050505050505050565b610d07816123a9565b50565b610d468282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124eb92505050565b5050565b600e5460ff16610d98576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610da1336120e7565b610ddc5760405162461bcd60e51b815260040180806020018281038252602b815260200180612f4f602b913960400191505060405180910390fd5b828114610e1a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130c66033913960400191505060405180910390fd5b6002548314610e5a5760405162461bcd60e51b815260040180806020018281038252603f815260200180613065603f913960400191505060405180910390fd5b600060025411610eb1576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612f2d6022913960400191505060405180910390fd5b60005b600254811015611079576000868683818110610f2657fe5b9050602002013590506000858584818110610f3d57fe5b9050602002013560ff169050610f528261235b565b610f95576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9e8261251b565b610fe6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fef816125b5565b611030576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103f57fe5b906000526020600020906006020190506110698260ff1682600501546125c190919063ffffffff16565b6005909101555050600101610f0e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b600061113f60048363ffffffff61262216565b90505b919050565b61115033612689565b565b6000808080806001600160a01b0386166111aa576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6111b2612eaf565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611150336126b9565b600354610100900460ff1615611296576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61129f3361112c565b6112da5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506126fc565b60245481565b600f54601554601b54909192565b60035460009060ff16611349576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166113ab576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316611406576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611476576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611481612eaf565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106115e957fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546116809163ffffffff6125c116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611724576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61172d3361112c565b6117685760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061274c565b60035460ff16156117bf576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff1615611811576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561185e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118673361112c565b6118a25760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b60215460ff16156118f3576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b600060025411611940576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611948612eaf565b611950612eaf565b611958612eaf565b611960612eaf565b60005b600154811015611a4b576001818154811061197a57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119f257508160a001518560a00151105b156119fc57611a43565b8360a001518560a001511115611a16578493929150611a43565b8260a001518560a001511115611a2f5784929150611a43565b8160a001518560a001511115611a43578491505b600101611963565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c3f3361112c565b611c7a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d078161278c565b600e5460ff1690565b600e5460ff16611cda576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611ce33361112c565b611d1e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061291f565b611d2f3361112c565b611d6a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d0781612689565b60225481565b600e5460ff1615611dc6576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dcf3361112c565b611e0a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061295f565b60035460ff1615611e61576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e6a3361112c565b611ea55760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506129a9565b60003411611eec5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0c6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f373361112c565b611f725760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d07816129f3565b81611f858161235b565b611fc8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fd28161251b565b61201a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661206d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061207c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b600061113f60058363ffffffff61262216565b610d0781612a6a565b61210c3361112c565b6121475760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b602b5460ff161561219f576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006121c1826121b5868663ffffffff6125c116565b9063ffffffff6125c116565b905030318111156122035760405162461bcd60e51b815260040180806020018281038252603081526020018061311b6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff1661230f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123183361112c565b6123535760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b611150612b45565b6001541190565b6011546000906001600160a01b038381169116148061238e57506017546001600160a01b038381169116145b8061113f575050601d546001600160a01b0390811691161490565b806123b38161235b565b6123f6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124008161251b565b1561244a576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061245957fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250612492919063ffffffff6125c116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d465761251382828151811061250657fe5b6020026020010151612a6a565b6001016124ee565b60006125268261235b565b61253257506000611142565b61253a612eaf565b6001838154811061254757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561261b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166126695760405162461bcd60e51b81526004018080602001828103825260228152602001806130f96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61269281612b90565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6126c281612bd3565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a546126f690600163ffffffff612c1b16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61279581612c78565b600c546127a0612ee4565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6129fc81612cef565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a546126f6916125c1565b80612a748161235b565b612ab7576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612ac18161251b565b612b09576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b1857fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612492906001612c1b565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612b9981612d37565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612bcd90600163ffffffff612c1b16565b60075550565b612be460048263ffffffff612d7f16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612c72576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612c8181612de6565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612bcd916125c1565b612d0060048263ffffffff612e2e16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612d4860058263ffffffff612d7f16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d898282612622565b612dc45760405162461bcd60e51b8152600401808060200182810382526021815260200180612fad6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612df760058263ffffffff612e2e16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612e388282612622565b15612e8a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820d3fc6eadc7d287f863a2ee4ffbede7533e2750d1d91626897beab69d7a1893ef64736f6c634300050c0032", - "sourceMap": "597:5261:4:-;;;2514:320;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:320:4;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2514:320:4;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1889:30:22;;1881:63;;;;;-1:-1:-1;;;1881:63:22;;;;;;;;;;;;-1:-1:-1;;;1881:63:22;;;;;;;;;;;;;;;1954:31;1968:16;1954:13;:31::i;:::-;-1:-1:-1;2688:5:4;;-1:-1:-1;2694:1:4;;-1:-1:-1;2688:8:4;;;-1:-1:-1;;;;;;2688:13:4;2680:38;;;;;-1:-1:-1;;;2680:38:4;;;;;;;;;;;;-1:-1:-1;;;2680:38:4;;;;;;;;;;;;;;;-1:-1:-1;2728:2:4;:8;;;;2746:4;:12;2768:11;:26;2804:15;:23;;-1:-1:-1;;2804:23:4;;;597:5261;;1599:232:20;1658:28;1678:7;1658:19;;;;;:28;;:::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1772:21;:52;-1:-1:-1;1599:232:20:o;2455:128:22:-;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;-1:-1:-1;401:27:24;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;597:5261:4:-;;;;;;;", - "deployedSourceMap": "597:5261:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:293:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3439:293:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3439:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3439:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3439:293:3;;;838:19:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:19:4;;;:::i;:::-;;;;;;;;;;;;;;;;3980:1510;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3980:1510:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3980:1510:4;-1:-1:-1;;;;;3980:1510:4;;:::i;:::-;;8416:83:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8416:83:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8416:83:3;;:::i;8791:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8791:98:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8791:98:3;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8791:98:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8791:98:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8791:98:3;;-1:-1:-1;8791:98:3;-1:-1:-1;8791:98:3;:::i;2703:1555:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2703:1555:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2703:1555:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2703:1555:1;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2703:1555:1;;-1:-1:-1;2703:1555:1;-1:-1:-1;2703:1555:1;:::i;1103:19:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1103:19:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:113:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2144:113:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;2240:73:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:73:21;;;:::i;4172:332:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4172:332:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4172:332:3;-1:-1:-1;;;;;4172:332:3;;:::i;8042:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8042:101:3;;;:::i;2368:81:22:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2368:81:22;;;:::i;7408:108:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7408:108:1;;;:::i;863:26:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;863:26:4;;;:::i;6283:145:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6283:145:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4887:1108:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4887:1108:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4887:1108:3;;;;;;;-1:-1:-1;;;;;4887:1108:3;;;;;;:::i;6559:114:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6559:114:1;;;:::i;4426:1656::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4426:1656:1;;;:::i;994:91:20:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;994:91:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;994:91:20;-1:-1:-1;;;;;994:91:20;;:::i;8220:101:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8220:101:1;;;:::i;7699:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7699:102:1;;;:::i;1091:97:20:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1091:97:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1091:97:20;-1:-1:-1;;;;;1091:97:20;;:::i;815:17:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:17:4;;;:::i;7983:102:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7983:102:1;;;:::i;6803:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6803:114:1;;;:::i;348:162:18:-;;;:::i;7243:105:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7243:105:3;;;:::i;2263:99:22:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2263:99:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;6206:343:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6206:343:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6206:343:3;;;;;;;:::i;2003:105:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2003:105:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2003:105:21;-1:-1:-1;;;;;2003:105:21;;:::i;9160:83:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9160:83:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9160:83:3;;:::i;3221:620:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3221:620:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3221:620:4;;;;;;;;;;;;:::i;7109:108:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7109:108:1;;;:::i;3439:293:3:-;3545:7;3554;3563;3572:4;3578:7;3520:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;3601:16;;:::i;:::-;3620:5;3626:6;3620:13;;;;;;;;;;;;;;;;;3601:32;;;;;;;;3620:13;;;;;;;;3601:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3601:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3601:32:3;;;;;;;;;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;-1:-1:-1;3601:32:3;-1:-1:-1;;;;3439:293:3:o;838:19:4:-;;;;:::o;3980:1510::-;1652:13:1;;;;1644:48;;;;;-1:-1:-1;;;1644:48:1;;;;;;;;;;;;-1:-1:-1;;;1644:48:1;;;;;;;;;;;;;;;1729:15:4;;;;1721:52;;;;;-1:-1:-1;;;1721:52:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4121:13;-1:-1:-1;;;;;2016:21:4;;2008:54;;;;;-1:-1:-1;;;2008:54:4;;;;;;;;;;;;-1:-1:-1;;;2008:54:4;;;;;;;;;;;;;;;2099:4;-1:-1:-1;;;;;2080:24:4;;;;2072:87;;;;-1:-1:-1;;;2072:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4162:13;1865:30;1881:13;1865:15;:30::i;:::-;1857:74;;;;;-1:-1:-1;;;1857:74:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4294:22;;4191:19;;;;;;-1:-1:-1;;;;;4277:39:4;;;4294:22;;4277:39;4273:1038;;;-1:-1:-1;;4346:22:4;;4391:15;:22;4466:20;;-1:-1:-1;;;;;4346:22:4;;;;-1:-1:-1;4391:22:4;-1:-1:-1;;4466:20:4;;4465:21;4457:68;;;;-1:-1:-1;;;4457:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:20;:27;;-1:-1:-1;;4539:27:4;4562:4;4539:27;;;4273:1038;;;4604:23;;-1:-1:-1;;;;;4587:40:4;;;4604:23;;4587:40;4583:728;;;-1:-1:-1;;4657:23:4;;4703:16;:23;4779:21;;-1:-1:-1;;;;;4657:23:4;;;;-1:-1:-1;4703:23:4;4657;;4779:21;;4778:22;4770:70;;;;-1:-1:-1;;;4770:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4854:21;:28;;-1:-1:-1;;4854:28:4;4878:4;4854:28;;;4583:728;;;4920:22;;-1:-1:-1;;;;;4903:39:4;;;4920:22;;4903:39;4899:412;;;-1:-1:-1;;4972:22:4;;5017:15;:22;5092:20;;-1:-1:-1;;;;;4972:22:4;;;;-1:-1:-1;5017:22:4;5068:1;;5092:20;;5091:21;5083:68;;;;-1:-1:-1;;;5083:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5165:20;:27;;-1:-1:-1;;5165:27:4;5188:4;5165:27;;;4899:412;;;5223:77;;-1:-1:-1;;;5223:77:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4899:412;5326:60;;;;;;;;;;;;;5382:3;5326:60;;;;;;5370:10;;-1:-1:-1;;;;;5326:60:4;;;;;;;;;;;;5447:11;-1:-1:-1;;;;;5438:29:4;;5474:6;5438:45;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5438:45:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5438:45:4;;;;;1941:1;;;2169;1783;3980:1510;:::o;8416:83:3:-;8472:20;8485:6;8472:12;:20::i;:::-;8416:83;:::o;8791:98::-;8860:22;8874:7;;8860:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8860:13:3;;-1:-1:-1;;;8860:22:3:i;:::-;8791:98;;:::o;2703:1555:1:-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;1912:19:21;1920:10;1912:7;:19::i;:::-;1904:75;;;;-1:-1:-1;;;1904:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:35:1;;;2860:99;;;;-1:-1:-1;;;2860:99:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3008:18;;2990:36;;2969:146;;;;-1:-1:-1;;;2969:146:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3154:1;3133:18;;:22;3125:64;;;;;-1:-1:-1;;;3125:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:10;3199:19;3221:26;;;:14;:26;;;;;3266:11;;;;-1:-1:-1;;;3266:11:1;;;;3265:12;3257:59;;;;-1:-1:-1;;;3257:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:9;3326:801;3350:18;;3346:1;:22;3326:801;;;3389:14;3406:7;;3414:1;3406:10;;;;;;;;;;;;;3389:27;;3430:11;3444:10;;3455:1;3444:13;;;;;;;;;;;;;;;3430:27;;3850:21;3864:6;3850:13;:21::i;:::-;3842:49;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;;;;3913:22;3928:6;3913:14;:22::i;:::-;3905:55;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;;;;3982:19;3995:5;3982:12;:19::i;:::-;3974:45;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;;;;4034:17;4054:5;4060:6;4054:13;;;;;;;;;;;;;;;;;;4034:33;;4094:21;4109:5;4094:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4081:10;;;;:34;-1:-1:-1;;3370:3:1;;3326:801;;;-1:-1:-1;4192:4:1;4178:11;;:18;;-1:-1:-1;;;;4178:18:1;-1:-1:-1;;;4178:18:1;;;;;4222:8;;4211:40;;;-1:-1:-1;;;;;4232:18:1;;;4211:40;;;4222:8;;4211:40;;;;;;;;;;1989:1:21;2703:1555:1;;;;:::o;1103:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1103:19:3;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;:::o;2144:113:22:-;2203:4;2226:24;:11;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;;2144:113;;;;:::o;2240:73:21:-;2282:24;2295:10;2282:12;:24::i;:::-;2240:73::o;4172:332:3:-;4240:7;;;;;-1:-1:-1;;;;;4300:25:3;;4292:58;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;;;;4360:16;;:::i;:::-;-1:-1:-1;;;;;;;;;4379:26:3;;;:13;:26;;;;;;;;;;;;4360:45;;;;;;;;;;;-1:-1:-1;4360:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4360:45:3;;;;;;;;;;;;-1:-1:-1;4360:45:3;-1:-1:-1;4360:45:3;4172:332::o;8042:101::-;8119:17;;;;;;;;8042:101::o;2368:81:22:-;2414:28;2431:10;2414:16;:28::i;7408:108:1:-;2513:17:3;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7486:23:1;:21;:23::i;863:26:4:-;;;;:::o;6283:145:1:-;6376:10;:13;6391:11;:14;6407:10;:13;6283:145;;;:::o;4887:1108:3:-;2163:19;;5031:7;;2163:19;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5071:1:3;5062:11;;;;;:16;5054:54;;;;;-1:-1:-1;;;5054:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:25:3;;5118:65;;;;;-1:-1:-1;;;5118:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5201:26:3;;;5251:1;5201:26;;;;;;;;;;:38;;;;:52;5193:88;;;;;-1:-1:-1;;;5193:88:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:5;:12;5688:16;;:::i;:::-;-1:-1:-1;5707:58:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5707:58:3;;;;;;;;;;;;;;;-1:-1:-1;5707:58:3;;;;;;-1:-1:-1;;5707:58:3;;;;;27:10:-1;;23:18;;;45:23;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5775:16:3;;;;;;;;;;;;;;;;;;;;5830:13;;5707:58;;-1:-1:-1;5707:58:3;;5830:13;;;;;;;;;;;;;;-1:-1:-1;;;;;5801:26:3;;;;;;;;;;;;;5830:13;;;;;;;;5801:42;;;;-1:-1:-1;5801:42:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5801:42:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5801:42:3;;;;;;;;;;;;;;;;;;;;;;;5874:18;;:25;;:22;:25::i;:::-;5853:18;:46;5914:51;;;;;;5960:4;5914:51;;;;;;-1:-1:-1;;;;;5914:51:3;;;5929:6;;5914:51;;;;;;;;;;;-1:-1:-1;5982:6:3;4887:1108;-1:-1:-1;;;;4887:1108:3:o;6559:114:1:-;2163:19:3;;;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:26:1;:24;:26::i;4426:1656::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2513:17;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;1543:17:1;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:13:1;;;;1764:14;1756:49;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;;;;4643:1;4622:18;;:22;4614:54;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;;;;4678:19;;:::i;:::-;4707:20;;:::i;:::-;4737:21;;:::i;:::-;4768:20;;:::i;:::-;4804:9;4799:881;4823:5;:12;4819:16;;4799:881;;;4866:5;4872:1;4866:8;;;;;;;;;;;;;;;;;4856:18;;;;;;;;4866:8;;;;;;;;4856:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4856:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4856:18:1;;;;-1:-1:-1;4856:18:1;4892:51;;;4929:8;:14;;;4913:7;:13;;;:30;4892:51;4888:213;;;5078:8;;4888:213;5301:8;:14;;;5285:7;:13;;;:30;5281:389;;;5422:7;;5385:8;5346:9;-1:-1:-1;5281:389:1;;;5470:9;:15;;;5454:7;:13;;;:31;5450:220;;;5555:7;;5516:9;-1:-1:-1;5450:220:1;;;5603:8;:14;;;5587:7;:13;;;:30;5583:87;;;5648:7;5637:18;;5583:87;4837:3;;4799:881;;;-1:-1:-1;5690:21:1;;:10;:21;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5690:21:1;;;-1:-1:-1;;;;;5690:21:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5690:21:1;;;;;;;;;;;;-1:-1:-1;5690:21:1;;;;;;;;5721:23;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5754:21;;:10;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5785:13;:20;;;;;-1:-1:-1;5785:20:1;;;;;;5820:74;;;;;5850:22;;;;5820:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5924:11;:14;5940:23;;5965:17;;5909:77;;;;;;-1:-1:-1;;;;;5940:23:1;;;5909:77;;;;;;;;5940:23;5909:77;;;;;;;;;;;;;;6016:10;:13;6031:22;;6055:16;;;6001:74;;;;;;-1:-1:-1;;;;;6031:22:1;;;6001:74;;;;;;;;;;;6073:1;6001:74;;;;;;;;;;;;;;1815:1;;;;4426:1656::o;994:91:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:18:20;1070:7;1060:9;:18::i;8220:101:1:-;8297:17;;;;8220:101;:::o;7699:102::-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7776:18:1;:16;:18::i;1091:97:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:21:20;1173:7;1160:12;:21::i;815:17:4:-;;;;:::o;7983:102:1:-;1543:17;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8061:17:1;:15;:17::i;6803:114::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6885:25:1;:23;:25::i;348:162:18:-;414:1;402:9;:13;394:59;;;;-1:-1:-1;;;394:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:35;;;488:9;468:35;;;;499:3;;476:10;;468:35;;;;;;;;;348:162::o;7243:105:3:-;7322:19;;;;7243:105;:::o;2263:99:22:-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;6206:343:3:-;6309:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;6340:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;2398:17;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;6387:17;6407:5;6413:6;6407:13;;;;;;;;;;;;;;;;;;;;;;;6430:17;;;:32;;;6506:16;;;;6497:7;;6477:65;;;;;;;;6407:13;;-1:-1:-1;;;;;;6506:16:3;;;;6497:7;;6477:65;;;;;;;;;;2450:1;2683;6206:343;;;:::o;2003:105:21:-;2058:4;2081:20;:7;2093;2081:20;:11;:20;:::i;9160:83:3:-;9216:20;9229:6;9216:12;:20::i;3221:620:4:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:15:4;;;;1612:16;1604:53;;;;;-1:-1:-1;;;1604:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:19;3410:43;3442:10;3410:27;:10;3425:11;3410:27;:14;:27;:::i;:::-;:31;:43;:31;:43;:::i;:::-;3388:65;-1:-1:-1;3494:4:4;3486:21;3471:36;;;3463:97;;;;-1:-1:-1;;;3463:97:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3588:24;;;;;;;;;;;-1:-1:-1;3588:24:4;;;;;;;3570:15;:42;;;;;;-1:-1:-1;;3570:42:4;;;;;;3641:25;;;;;;;;;;;;;;;3622:16;:44;;;;;;;;;;3694:24;;;;;;;;;;;;;;;;3676:15;:42;;;;;;;;;;3728:15;:22;;;;;3588:24;3728:22;;;3765:69;;;;;;;;;;;;;;;;;3830:3;3765:69;;;;;;3818:10;;3765:69;;;;;;;;;;1667:1;3221:620;;;:::o;7109:108:1:-;2398:17:3;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7186:24:1;:22;:24::i;10868:115:3:-;10963:5;:12;-1:-1:-1;10954:21:3;10868:115::o;5574:282:4:-;5698:22;;5644:4;;-1:-1:-1;;;;;5681:39:4;;;5698:22;;5681:39;;:99;;-1:-1:-1;5757:23:4;;-1:-1:-1;;;;;5740:40:4;;;5757:23;;5740:40;5681:99;:158;;;-1:-1:-1;;5817:22:4;;-1:-1:-1;;;;;5800:39:4;;;5817:22;;5800:39;;5574:282::o;9973:300:3:-;10032:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10055:6;2885:22;2900:6;2885:14;:22::i;:::-;2884:23;2876:57;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;;;;10073:17;10093:5;10099:6;10093:13;;;;;;;;;;;;;;;;;;;;;10116;;;:20;;10132:4;-1:-1:-1;;10116:20:3;;;;;;;;10167:18;;10093:13;;-1:-1:-1;10167:25:3;;:18;:22;:25::i;:::-;10146:18;:46;;;10234:16;;;10225:7;;10252:13;;;;10207:59;;;10252:13;;;;10207:59;;;;;-1:-1:-1;;;;;10234:16:3;;;;10207:59;;;;;;;;;2943:1;2683;9973:300;;:::o;10315:168::-;10388:9;10383:94;10407:7;:14;10403:1;:18;10383:94;;;10442:24;10455:7;10463:1;10455:10;;;;;;;;;;;;;;10442:12;:24::i;:::-;10423:3;;10383:94;;11025:223;11088:4;11109:21;11123:6;11109:13;:21::i;:::-;11104:65;;-1:-1:-1;11153:5:3;11146:12;;11104:65;11179:16;;:::i;:::-;11198:5;11204:6;11198:13;;;;;;;;;;;;;;;;;11179:32;;;;;;;;11198:13;;;;;;;;11179:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11179:32:3;;;;;11025:223;-1:-1:-1;;;11025:223:3:o;9846:115:1:-;9951:2;9942:11;;;;;;;9846:115::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;9430:234:1:-;9488:27;9507:7;9488:18;:27::i;:::-;-1:-1:-1;;;;;9547:23:1;9525:19;9547:23;;;:14;:23;;;;;-1:-1:-1;9580:12:1;:20;;-1:-1:-1;;;;9580:20:1;;;9430:234::o;1837:205:20:-;1899:31;1922:7;1899:22;:31::i;:::-;-1:-1:-1;;;;;1940:25:20;;1968:5;1940:25;;;:16;:25;;;;;:33;;-1:-1:-1;;1940:33:20;;;2007:21;;:28;;-1:-1:-1;2007:25:20;:28::i;:::-;1983:21;:52;-1:-1:-1;1837:205:20:o;9797:134:3:-;9843:17;:24;;-1:-1:-1;;9843:24:3;;;;;;;;;9882:42;;;9906:17;;;;9843:24;9906:17;9882:42;;;;;;;;;;;;;;;9797:134::o;9285:144::-;9334:19;:27;;-1:-1:-1;;9334:27:3;;;9376:46;;;9356:5;9376:46;;;;;;;;;;;;;9285:144::o;8839:472:1:-;9042:24;9058:7;9042:15;:24::i;:::-;9092:10;:17;9119:18;;:::i;:::-;9140:34;;;;;;;;9146:5;9140:34;;;;9153:7;-1:-1:-1;;;;;9140:34:1;;;;;9162:4;9140:34;;;;;;9168:5;9140:34;;;;;9119:55;;9184:10;9200:5;9184:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9184:22:1;;;;;-1:-1:-1;;;;;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9242:5;9216:14;:23;9231:7;-1:-1:-1;;;;;9216:23:1;-1:-1:-1;;;;;9216:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9216:31:1;;;;;-1:-1:-1;;;;;9216:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8839:472;;;:::o;8386:136::-;8433:17;:25;;-1:-1:-1;;8433:25:1;;;8473:42;;;8453:5;8473:42;;;;;;;;;;;;;8386:136::o;8586:134::-;8632:17;:24;;-1:-1:-1;;8632:24:1;8652:4;8632:24;;;;;8671:42;;;8632:24;8695:17;;;;8671:42;;;;;;;;;;;;;;8586:134::o;9471:142:3:-;9519:19;:26;;-1:-1:-1;;9519:26:3;9541:4;9519:26;;;;;9560:46;;;9519:26;9586:19;;;;9560:46;;;;;;;;;;;;;;9471:142::o;1599:232:20:-;1658:28;1678:7;1658:19;:28::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:25;:28::i;10525:301:3:-;10584:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10607:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;10625:17;10645:5;10651:6;10645:13;;;;;;;;;;;;;;;;;;;;;10668;;;:21;;-1:-1:-1;;10668:21:3;;;10720:18;;10645:13;;-1:-1:-1;10720:25:3;;-1:-1:-1;10720:22:3;:25::i;9619:136::-;9666:17;:25;;-1:-1:-1;;9666:25:3;;;;;9706:42;;;9666:25;9730:17;;;9666:25;9730:17;9706:42;;;;;;;;;;;;;;9619:136::o;1408:185:20:-;1466:27;1485:7;1466:18;:27::i;:::-;-1:-1:-1;;;;;1503:21:20;;1527:5;1503:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1503:29:20;;;1562:17;;:24;;-1:-1:-1;1562:21:20;:24::i;:::-;1542:17;:44;-1:-1:-1;1408:185:20:o;2589:136:22:-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;1194:208:20:-;1249:24;1265:7;1249:15;:24::i;:::-;1283:6;27:10:-1;;39:1;23:18;;;45:23;;;1283:20:20;;;;-1:-1:-1;;;;;;1283:20:20;-1:-1:-1;;;;;1283:20:20;;;;;;;;-1:-1:-1;1313:21:20;;;:12;1283:20;1313:21;;;;:28;;-1:-1:-1;;1313:28:20;;;;;1371:17;;:24;;:21;:24::i;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;2441:124:21:-;2499:23;:7;2514;2499:23;:14;:23;:::i;:::-;2537:21;;-1:-1:-1;;;;;2537:21:21;;;;;;;;2441:124;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o;2319:116:21:-;2374:20;:7;2386;2374:20;:11;:20;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;-1:-1:-1;401:27:24;;;260:175::o;597:5261:4:-;;;;;;;;;-1:-1:-1;597:5261:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;597:5261:4;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"./ContestBracketRegistry.sol\";\nimport \"../payment/Payable.sol\";\n\n/**\n @notice Represents a hackathon contest, where organizers can control the\n stages/phases of the contest (such as registration, submission, evaluation and results)\n as well as pay prizes to the winners.\n @dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\n The ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.\n */\ncontract Hackathon is Payable, ContestBracketRegistry {\n using SafeMath for uint256;\n\n /// @dev Represents a prize to be paid to a winner.\n struct Prize {\n uint256 amount;\n bool paid;\n }\n\n uint256 public id;\n bytes32 public name;\n bytes32 public description;\n Prize internal firstPlacePrize;\n Prize internal secondPlacePrize;\n Prize internal thirdPlacePrize;\n bool internal prizesAllocated;\n\n /// @dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw.\n event PrizeAllocation(\n uint256 firstPlacePrize,\n uint256 secondPlacePrize,\n uint256 thirdPlacePrize,\n address indexed organizer,\n uint256 datetime\n );\n\n /// @dev emitted when a prize is withdraw by a winner team.\n event Withdraw(address indexed to, uint256 amount, uint8 rankPosition, address indexed requester, uint256 datetime);\n\n modifier whenPrizeNotAllocated() {\n require(!prizesAllocated, \"Prizes already allocated\");\n _;\n }\n\n modifier whenPrizeAllocated() {\n require(prizesAllocated, \"Prizes not allocated yet\");\n _;\n }\n\n modifier onlyWinnerAddress(address winnerAddress) {\n require(isWinnerAddress(winnerAddress), \"Account address is not a winner\");\n _;\n }\n\n modifier onlyValidAddress(address account) {\n require(account != address(0), \"Invalid zero address\");\n require(account != address(this), \"Address cannot be equal to contract (this) address\");\n _;\n }\n\n /**\n @notice Creates a new Hackathon contract with a specific _id, _name, desciption,\n and a specific organizer.\n @param _id {uint256} Hackathon's unique indentifier\n @param _name {bytes32} Hackathon's name. Required.\n @param _description {bytes32} Hackathon's description. Optional.\n */\n constructor(uint256 _id, bytes32 _name, bytes32 _description, address initialOrganizer)\n public\n ContestBracketRegistry(initialOrganizer)\n {\n require(_name[0] != 0, \"Invalid name\");\n id = _id;\n name = _name;\n description = _description;\n prizesAllocated = false;\n }\n\n /**\n @notice Allows the organizer to allocate funds that's going to be distributed to winners.\n @dev It does not associate the prize with a specific account, since prizes cound be associated any moment\n by the organizers, as long as prizes were not allocated before.\n The contract needs to have enought balance to allocate funds to winners.\n */\n function allocatePrize(uint256 firstPrize, uint256 secondPrize, uint256 thirdPrize)\n external\n onlyOrganizer\n whenPrizeNotAllocated\n {\n uint256 totalPrizes = firstPrize.add(secondPrize).add(thirdPrize);\n require(totalPrizes <= address(this).balance, \"Not enough funds available in hackathon contract\");\n firstPlacePrize = Prize(firstPrize, false);\n secondPlacePrize = Prize(secondPrize, false);\n thirdPlacePrize = Prize(thirdPrize, false);\n prizesAllocated = true;\n emit PrizeAllocation(firstPrize, secondPrize, thirdPrize, msg.sender, now);\n }\n\n /**\n @notice Allows withdrawing prizes to winners.\n @dev Winners must implement IPayable to receive funds.\n */\n function withdrawPrize(address winnerAddress)\n external\n whenRankPublished\n whenPrizeAllocated\n onlyValidAddress(winnerAddress)\n onlyWinnerAddress(winnerAddress)\n {\n address teamAddress;\n uint256 amount;\n uint8 rankPosition;\n\n if (winnerAddress == firstPlace.teamAddress) {\n teamAddress = firstPlace.teamAddress;\n amount = firstPlacePrize.amount;\n rankPosition = 1;\n require(!firstPlacePrize.paid, \"Prize already paid for first place\");\n firstPlacePrize.paid = true;\n } else if (winnerAddress == secondPlace.teamAddress) {\n teamAddress = secondPlace.teamAddress;\n amount = secondPlacePrize.amount;\n rankPosition = 2;\n require(!secondPlacePrize.paid, \"Prize already paid for second place\");\n secondPlacePrize.paid = true;\n } else if (winnerAddress == thirdPlace.teamAddress) {\n teamAddress = thirdPlace.teamAddress;\n amount = thirdPlacePrize.amount;\n rankPosition = 3;\n require(!thirdPlacePrize.paid, \"Prize already paid for third place\");\n thirdPlacePrize.paid = true;\n } else {\n revert(\"Invalid address. Address check failed. Should not reach this point.\");\n }\n\n emit Withdraw(teamAddress, amount, rankPosition, msg.sender, now);\n // Pays winner using team addres.\n IPayable(teamAddress).deposit.value(amount)();\n }\n\n /**\n Checks if the specifier address is one of the winners\n */\n\n function isWinnerAddress(address winnerAddress) private view returns (bool) {\n return (\n winnerAddress == firstPlace.teamAddress ||\n winnerAddress == secondPlace.teamAddress ||\n winnerAddress == thirdPlace.teamAddress\n );\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_description\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"initialOrganizer\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"secondPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thirdPlacePrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organizer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeAllocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"firstPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thirdPrize\",\"type\":\"uint256\"}],\"name\":\"allocatePrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"id\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"winnerAddress\",\"type\":\"address\"}],\"name\":\"withdrawPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"For the payment functionality, the \\\"withdraw pattern\\\" is being implemented for this contract. The ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.\",\"events\":{\"PrizeAllocation(uint256,uint256,uint256,address,uint256)\":{\"details\":\"emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw.\"},\"Withdraw(address,uint256,uint8,address,uint256)\":{\"details\":\"emitted when a prize is withdraw by a winner team.\"}},\"kind\":\"dev\",\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"details\":\"It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners.\"},\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"constructor\":{\"params\":{\"_description\":\"{bytes32} Hackathon's description. Optional.\",\"_id\":\"{uint256} Hackathon's unique indentifier\",\"_name\":\"{bytes32} Hackathon's name. Required.\"}},\"getEvaluationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getWinnersIds()\":{\"returns\":{\"_0\":\"{uint256} First place's id\",\"_1\":\"{uint256} Second place's id\",\"_2\":\"{uint256} Third place's id\"}},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}},\"withdrawPrize(address)\":{\"details\":\"Winners must implement IPayable to receive funds.\"}},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,uint256,uint256)\":{\"notice\":\"Event emitted when the contract receives a deposit.\"}},\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"},\"allocatePrize(uint256,uint256,uint256)\":{\"notice\":\"Allows the organizer to allocate funds that's going to be distributed to winners.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"constructor\":{\"notice\":\"Creates a new Hackathon contract with a specific _id, _name, desciption, and a specific organizer.\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"},\"withdrawPrize(address)\":{\"notice\":\"Allows withdrawing prizes to winners.\"}},\"notice\":\"Represents a hackathon contest, where organizers can control the stages/phases of the contest (such as registration, submission, evaluation and results) as well as pay prizes to the winners.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":\"Hackathon\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xd1196a748082cce096e21d641038731001120bb5541da30f790f60e25755f47f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bca457ac99eada6a9ced6bce02820693a3a01d593b999f53efd2de08e76d1ff\",\"dweb:/ipfs/QmV5ZNGfyjhfXD8g9Akt2bLm8dthjfe5bCm1xdXSbgm3sS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xa6adf649500cc03ab551c7fb0c646f1bb90190d9d8fc26f6b9d9b786a71faa78\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589c93299c47afbc897d500d66cc2263f8250cb1205868261f00042d98e3f062\",\"dweb:/ipfs/QmcBMUCdUaaDVQJbMaHNXwfJ3QeA3qW7gVwDyfDUdBoqmQ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200354038038062003540833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000ad576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000b88162000144565b50849150600090501a60f81b7fff000000000000000000000000000000000000000000000000000000000000001662000127576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b604482015290519081900360640190fd5b50602292909255602355602455602b805460ff191690556200037f565b6200015a81620001de60201b620023241760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620001d892909162000230811b6200236617901c565b600a5550565b620001f98160046200029260201b620023c71790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156200028b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200029e828262000316565b15620002f1576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200035f5760405162461bcd60e51b81526004018080602001828103825260228152602001806200351e6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61318f806200038f6000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108e4565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108ea565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cf8565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d04565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d44565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d3565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b0316611129565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab61113e565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611149565b34801561052557600080fd5b506104bd61121a565b34801561053a57600080fd5b506102ab611228565b34801561054f57600080fd5b506102ab611231565b34801561056457600080fd5b506102666112cf565b34801561057957600080fd5b506105826112d5565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112e3565b3480156105eb57600080fd5b506102ab6116b0565b34801561060057600080fd5b506102ab61174c565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c12565b34801561064857600080fd5b506104bd611c5f565b34801561065d57600080fd5b506102ab611c68565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d02565b3480156106a557600080fd5b50610266611d4f565b3480156106ba57600080fd5b506102ab611d55565b3480156106cf57600080fd5b506102ab611dee565b6102ab611e89565b3480156106ec57600080fd5b506104bd611f01565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f0a565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f57565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120c3565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120d0565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b50803590602081013590604001356120d9565b3480156107f757600080fd5b506102ab612285565b60008060008060008561081281612448565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061086457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661093a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610991576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109e4576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a2c5760405162461bcd60e51b8152600401808060200182810382526032815260200180612fba6032913960400191505060405180910390fd5b81610a368161244f565b610a87576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b115750506011546025546026546001600160a01b0390921692509060019060ff1615610aff5760405162461bcd60e51b815260040180806020018281038252602281526020018061302f6022913960400191505060405180910390fd5b6026805460ff19166001179055610c4e565b6017546001600160a01b0387811691161415610b945750506017546027546028546001600160a01b0390921692509060029060ff1615610b825760405162461bcd60e51b81526004018080602001828103825260238152602001806131376023913960400191505060405180910390fd5b6028805460ff19166001179055610c4e565b601d546001600160a01b0387811691161415610c17575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c055760405162461bcd60e51b81526004018080602001828103825260228152602001806130906022913960400191505060405180910390fd5b602a805460ff19166001179055610c4e565b60405162461bcd60e51b8152600401808060200182810382526043815260200180612fec6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cd757600080fd5b505af1158015610ceb573d6000803e3d6000fd5b5050505050505050505050565b610d0181612496565b50565b610d408282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125d292505050565b5050565b600e5460ff16610d92576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610d9b336120c3565b610dd65760405162461bcd60e51b815260040180806020018281038252602b815260200180612f3b602b913960400191505060405180910390fd5b828114610e145760405162461bcd60e51b81526004018080602001828103825260338152602001806130b26033913960400191505060405180910390fd5b6002548314610e545760405162461bcd60e51b815260040180806020018281038252603f815260200180613051603f913960400191505060405180910390fd5b600060025411610eab576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f055760405162461bcd60e51b8152600401808060200182810382526022815260200180612f196022913960400191505060405180910390fd5b60005b600254811015611073576000868683818110610f2057fe5b9050602002013590506000858584818110610f3757fe5b9050602002013560ff169050610f4c82612448565b610f8f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9882612602565b610fe0576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fe981612696565b61102a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103957fe5b906000526020600020906006020190506110638260ff16826005015461236690919063ffffffff16565b6005909101555050600101610f08565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b60006111366004836126a2565b90505b919050565b61114733612709565b565b6000808080806001600160a01b0386166111a1576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b61114733612739565b600354610100900460ff1615611283576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61128c33611129565b6112c75760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612776565b60245481565b600f54601554601b54909192565b60035460009060ff16611336576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916611398576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166113f3576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611463576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106115cb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461165c91612366565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611700576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61170933611129565b6117445760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476127c6565b60035460ff161561179b576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156117ed576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561183a576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61184333611129565b61187e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b60215460ff16156118cf576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b60006002541161191c576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611924612ec2565b61192c612ec2565b611934612ec2565b61193c612ec2565b60005b600154811015611a27576001818154811061195657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119ce57508160a001518560a00151105b156119d857611a1f565b8360a001518560a0015111156119f2578493929150611a1f565b8260a001518560a001511115611a0b5784929150611a1f565b8160a001518560a001511115611a1f578491505b60010161193f565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c1b33611129565b611c565760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612806565b600e5460ff1690565b600e5460ff16611cb6576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611cbf33611129565b611cfa5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612997565b611d0b33611129565b611d465760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612709565b60225481565b600e5460ff1615611da2576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dab33611129565b611de65760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476129d7565b60035460ff1615611e3d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e4633611129565b611e815760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612a21565b60003411611ec85760405162461bcd60e51b8152600401808060200182810382526021815260200180612ef86021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f1333611129565b611f4e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612a6b565b81611f6181612448565b611fa4576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fae81612602565b611ff6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612049576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061205857fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111366005836126a2565b610d0181612ae2565b6120e233611129565b61211d5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b602b5460ff1615612175576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b600061218b826121858686612366565b90612366565b9050478111156121cc5760405162461bcd60e51b81526004018080602001828103825260308152602001806131076030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff166122d8576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6122e133611129565b61231c5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612bbd565b61232f6004826123c7565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156123c0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6123d182826126a2565b15612423576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061247b57506017546001600160a01b038381169116145b80611136575050601d546001600160a01b0390811691161490565b806124a081612448565b6124e3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124ed81612602565b15612537576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061254657fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125799190612366565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d40576125fa8282815181106125ed57fe5b6020026020010151612ae2565b6001016125d5565b600061260d82612448565b61261957506000611139565b60006001838154811061262857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166126e95760405162461bcd60e51b81526004018080602001828103825260228152602001806130e56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61271281612c08565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61274281612c45565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54612770906001612c87565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61280f81612cc9565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612a7481612324565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461277091612366565b80612aec81612448565b612b2f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612b3981612602565b612b81576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b9057fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612579906001612c87565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612c1181612d40565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612c3f906001612c87565b60075550565b612c50600482612d82565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b612cd281612e80565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612c3f91612366565b612d4b600582612d82565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d8c82826126a2565b612dc75760405162461bcd60e51b8152600401808060200182810382526021815260200180612f996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612e785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e3d578181015183820152602001612e25565b50505050905090810190601f168015612e6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612e8b6005826123c7565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220e32bda6b0d1a14af7f7e5458be4fececb72320d5bc94fe828921668964ece24964736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108e4565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108ea565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cf8565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d04565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d44565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d3565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b0316611129565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab61113e565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611149565b34801561052557600080fd5b506104bd61121a565b34801561053a57600080fd5b506102ab611228565b34801561054f57600080fd5b506102ab611231565b34801561056457600080fd5b506102666112cf565b34801561057957600080fd5b506105826112d5565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112e3565b3480156105eb57600080fd5b506102ab6116b0565b34801561060057600080fd5b506102ab61174c565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c12565b34801561064857600080fd5b506104bd611c5f565b34801561065d57600080fd5b506102ab611c68565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d02565b3480156106a557600080fd5b50610266611d4f565b3480156106ba57600080fd5b506102ab611d55565b3480156106cf57600080fd5b506102ab611dee565b6102ab611e89565b3480156106ec57600080fd5b506104bd611f01565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f0a565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f57565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120c3565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120d0565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b50803590602081013590604001356120d9565b3480156107f757600080fd5b506102ab612285565b60008060008060008561081281612448565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061086457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661093a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610991576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109e4576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a2c5760405162461bcd60e51b8152600401808060200182810382526032815260200180612fba6032913960400191505060405180910390fd5b81610a368161244f565b610a87576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b115750506011546025546026546001600160a01b0390921692509060019060ff1615610aff5760405162461bcd60e51b815260040180806020018281038252602281526020018061302f6022913960400191505060405180910390fd5b6026805460ff19166001179055610c4e565b6017546001600160a01b0387811691161415610b945750506017546027546028546001600160a01b0390921692509060029060ff1615610b825760405162461bcd60e51b81526004018080602001828103825260238152602001806131376023913960400191505060405180910390fd5b6028805460ff19166001179055610c4e565b601d546001600160a01b0387811691161415610c17575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c055760405162461bcd60e51b81526004018080602001828103825260228152602001806130906022913960400191505060405180910390fd5b602a805460ff19166001179055610c4e565b60405162461bcd60e51b8152600401808060200182810382526043815260200180612fec6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cd757600080fd5b505af1158015610ceb573d6000803e3d6000fd5b5050505050505050505050565b610d0181612496565b50565b610d408282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125d292505050565b5050565b600e5460ff16610d92576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610d9b336120c3565b610dd65760405162461bcd60e51b815260040180806020018281038252602b815260200180612f3b602b913960400191505060405180910390fd5b828114610e145760405162461bcd60e51b81526004018080602001828103825260338152602001806130b26033913960400191505060405180910390fd5b6002548314610e545760405162461bcd60e51b815260040180806020018281038252603f815260200180613051603f913960400191505060405180910390fd5b600060025411610eab576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f055760405162461bcd60e51b8152600401808060200182810382526022815260200180612f196022913960400191505060405180910390fd5b60005b600254811015611073576000868683818110610f2057fe5b9050602002013590506000858584818110610f3757fe5b9050602002013560ff169050610f4c82612448565b610f8f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9882612602565b610fe0576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fe981612696565b61102a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103957fe5b906000526020600020906006020190506110638260ff16826005015461236690919063ffffffff16565b6005909101555050600101610f08565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b60006111366004836126a2565b90505b919050565b61114733612709565b565b6000808080806001600160a01b0386166111a1576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b61114733612739565b600354610100900460ff1615611283576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61128c33611129565b6112c75760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612776565b60245481565b600f54601554601b54909192565b60035460009060ff16611336576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916611398576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166113f3576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611463576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106115cb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461165c91612366565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611700576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61170933611129565b6117445760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476127c6565b60035460ff161561179b576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156117ed576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561183a576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61184333611129565b61187e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b60215460ff16156118cf576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b60006002541161191c576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611924612ec2565b61192c612ec2565b611934612ec2565b61193c612ec2565b60005b600154811015611a27576001818154811061195657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119ce57508160a001518560a00151105b156119d857611a1f565b8360a001518560a0015111156119f2578493929150611a1f565b8260a001518560a001511115611a0b5784929150611a1f565b8160a001518560a001511115611a1f578491505b60010161193f565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c1b33611129565b611c565760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612806565b600e5460ff1690565b600e5460ff16611cb6576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611cbf33611129565b611cfa5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612997565b611d0b33611129565b611d465760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612709565b60225481565b600e5460ff1615611da2576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dab33611129565b611de65760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476129d7565b60035460ff1615611e3d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e4633611129565b611e815760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612a21565b60003411611ec85760405162461bcd60e51b8152600401808060200182810382526021815260200180612ef86021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f1333611129565b611f4e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612a6b565b81611f6181612448565b611fa4576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fae81612602565b611ff6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612049576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061205857fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111366005836126a2565b610d0181612ae2565b6120e233611129565b61211d5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b602b5460ff1615612175576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b600061218b826121858686612366565b90612366565b9050478111156121cc5760405162461bcd60e51b81526004018080602001828103825260308152602001806131076030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff166122d8576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6122e133611129565b61231c5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612bbd565b61232f6004826123c7565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156123c0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6123d182826126a2565b15612423576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061247b57506017546001600160a01b038381169116145b80611136575050601d546001600160a01b0390811691161490565b806124a081612448565b6124e3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124ed81612602565b15612537576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061254657fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125799190612366565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d40576125fa8282815181106125ed57fe5b6020026020010151612ae2565b6001016125d5565b600061260d82612448565b61261957506000611139565b60006001838154811061262857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166126e95760405162461bcd60e51b81526004018080602001828103825260228152602001806130e56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61271281612c08565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61274281612c45565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54612770906001612c87565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61280f81612cc9565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612a7481612324565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461277091612366565b80612aec81612448565b612b2f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612b3981612602565b612b81576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b9057fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612579906001612c87565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612c1181612d40565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612c3f906001612c87565b60075550565b612c50600482612d82565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b612cd281612e80565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612c3f91612366565b612d4b600582612d82565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d8c82826126a2565b612dc75760405162461bcd60e51b8152600401808060200182810382526021815260200180612f996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612e785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e3d578181015183820152602001612e25565b50505050905090810190601f168015612e6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612e8b6005826123c7565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220e32bda6b0d1a14af7f7e5458be4fececb72320d5bc94fe828921668964ece24964736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "637:5271:4:-:0;;;2554:305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2554:305:4;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;748:30:22;;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;-1:-1:-1;2713:5:4;;-1:-1:-1;2719:1:4::1;::::0;-1:-1:-1;2713:8:4::1;;;-1:-1:-1::0;;;;;;2713:13:4::1;2705:38;;;::::0;;-1:-1:-1;;;2705:38:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2705:38:4;;;;;;;;;;;;;::::1;;-1:-1:-1::0;2753:2:4::1;:8:::0;;;;2771:4:::1;:12:::0;2793:11:::1;:26:::0;2829:15:::1;:23:::0;;-1:-1:-1;;2829:23:4::1;::::0;;637:5271;;1682:241:20;1750:28;1770:7;1750:19;;;;;:28;;:::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1864:21;:52;-1:-1:-1;1682:241:20:o;1314:136:22:-;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;-1:-1:-1;564:27:23;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;637:5271:4:-;;;;;;;", + "deployedSourceMap": "637:5271:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3411:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3411:293:3;;;878:19:4;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4017:1523;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4017:1523:4;-1:-1:-1;;;;;4017:1523:4;;:::i;:::-;;8420:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8420:83:3;;:::i;8795:98::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8795:98:3;;-1:-1:-1;8795:98:3;-1:-1:-1;8795:98:3;:::i;2743:1555:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2743:1555:1;;-1:-1:-1;2743:1555:1;-1:-1:-1;2743:1555:1;:::i;1152:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:113:22;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1046:73:21;;;;;;;;;;;;;:::i;4144:332:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4144:332:3;-1:-1:-1;;;;;4144:332:3;;:::i;8046:101::-;;;;;;;;;;;;;:::i;1227:81:22:-;;;;;;;;;;;;;:::i;7475:117:1:-;;;;;;;;;;;;;:::i;903:26:4:-;;;;;;;;;;;;;:::i;6323:145:1:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:1108:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4859:1108:3;;;;;;;-1:-1:-1;;;;;4859:1108:3;;;;;;:::i;6599:123:1:-;;;;;;;;;;;;;:::i;4466:1656::-;;;;;;;;;;;;;:::i;1034:100:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1034:100:20;-1:-1:-1;;;;;1034:100:20;;:::i;8296:101:1:-;;;;;;;;;;;;;:::i;7775:102::-;;;;;;;;;;;;;:::i;1140:97:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:97:20;-1:-1:-1;;;;;1140:97:20;;:::i;855:17:4:-;;;;;;;;;;;;;:::i;8059:102:1:-;;;;;;;;;;;;;:::i;6852:123::-;;;;;;;;;;;;;:::i;396:183:18:-;;;:::i;7231:105:3:-;;;;;;;;;;;;;:::i;1122:99:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;6178:343:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6178:343:3;;;;;;;:::i;801:105:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:105:21;-1:-1:-1;;;;;801:105:21;;:::i;9164:83:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9164:83:3;;:::i;3246:632:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3246:632:4;;;;;;;;;;;;:::i;7167:117:1:-;;;;;;;;;;;;;:::i;3411:293:3:-;3517:7;3526;3535;3544:4;3550:7;3492:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;3573:16:::1;3592:5;3598:6;3592:13;;;;;;;;;::::0;;;::::1;::::0;;;;3573:32:::1;::::0;;::::1;::::0;::::1;::::0;;3592:13:::1;::::0;;;::::1;::::0;;::::1;3573:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3573:32:3::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;3573:32:3;;;;;;;;;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;-1:-1:-1;3573:32:3;-1:-1:-1;;;;3411:293:3:o;878:19:4:-;;;;:::o;4017:1523::-;1701:13:1;;;;1693:48;;;;;-1:-1:-1;;;1693:48:1;;;;;;;;;;;;-1:-1:-1;;;1693:48:1;;;;;;;;;;;;;;;1769:15:4::1;::::0;::::1;;1761:52;;;::::0;;-1:-1:-1;;;1761:52:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4158:13:::0;-1:-1:-1;;;;;2056:21:4;::::2;2048:54;;;::::0;;-1:-1:-1;;;2048:54:4;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2048:54:4;;;;;;;;;;;;;::::2;;2139:4;-1:-1:-1::0;;;;;2120:24:4;::::2;;;2112:87;;;;-1:-1:-1::0;;;2112:87:4::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4199:13:::3;1905:30;1921:13;1905:15;:30::i;:::-;1897:74;;;::::0;;-1:-1:-1;;;1897:74:4;;::::3;;::::0;::::3;::::0;::::3;::::0;;;;::::3;::::0;;;;;;;;;;;;;::::3;;4331:22:::0;;4228:19:::4;::::0;;;;;-1:-1:-1;;;;;4314:39:4;;::::4;4331:22:::0;::::4;4314:39;4310:1038;;;-1:-1:-1::0;;4383:22:4;;4428:15:::4;:22:::0;4503:20;;-1:-1:-1;;;;;4383:22:4;;::::4;::::0;-1:-1:-1;4428:22:4;-1:-1:-1;;4503:20:4::4;;4502:21;4494:68;;;;-1:-1:-1::0;;;4494:68:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4576:20:::0;:27;;-1:-1:-1;;4576:27:4::4;4599:4;4576:27;::::0;;4310:1038:::4;;;4641:23:::0;;-1:-1:-1;;;;;4624:40:4;;::::4;4641:23:::0;::::4;4624:40;4620:728;;;-1:-1:-1::0;;4694:23:4;;4740:16:::4;:23:::0;4816:21;;-1:-1:-1;;;;;4694:23:4;;::::4;::::0;-1:-1:-1;4740:23:4;4694::::4;::::0;4816:21:::4;;4815:22;4807:70;;;;-1:-1:-1::0;;;4807:70:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4891:21:::0;:28;;-1:-1:-1;;4891:28:4::4;4915:4;4891:28;::::0;;4620:728:::4;;;4957:22:::0;;-1:-1:-1;;;;;4940:39:4;;::::4;4957:22:::0;::::4;4940:39;4936:412;;;-1:-1:-1::0;;5009:22:4;;5054:15:::4;:22:::0;5129:20;;-1:-1:-1;;;;;5009:22:4;;::::4;::::0;-1:-1:-1;5054:22:4;5105:1:::4;::::0;5129:20:::4;;5128:21;5120:68;;;;-1:-1:-1::0;;;5120:68:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:20:::0;:27;;-1:-1:-1;;5202:27:4::4;5225:4;5202:27;::::0;;4936:412:::4;;;5260:77;;-1:-1:-1::0;;;5260:77:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4936:412;5363:72;::::0;;;;;::::4;::::0;::::4;;::::0;::::4;::::0;5419:15:::4;5363:72:::0;;;;;;5407:10:::4;::::0;-1:-1:-1;;;;;5363:72:4;::::4;::::0;::::4;::::0;;;;;;;::::4;5496:11;-1:-1:-1::0;;;;;5487:29:4::4;;5524:6;5487:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;1981:1;;;2209::::3;1823::::2;4017:1523:::0;:::o;8420:83:3:-;8476:20;8489:6;8476:12;:20::i;:::-;8420:83;:::o;8795:98::-;8864:22;8878:7;;8864:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8864:13:3;;-1:-1:-1;;;8864:22:3:i;:::-;8795:98;;:::o;2743:1555:1:-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;710:19:21::1;718:10;710:7;:19::i;:::-;702:75;;;;-1:-1:-1::0;;;702:75:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:35:1::0;;::::2;2900:99;;;;-1:-1:-1::0;;;2900:99:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:18;::::0;3030:36;::::2;3009:146;;;;-1:-1:-1::0;;;3009:146:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:1;3173:18;;:22;3165:64;;;::::0;;-1:-1:-1;;;3165:64:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3276:10;3239:19;3261:26:::0;;;:14:::2;:26;::::0;;;;3306:11:::2;::::0;::::2;::::0;-1:-1:-1;;;3306:11:1;::::2;;;3305:12;3297:59;;;;-1:-1:-1::0;;;3297:59:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3371:9;3366:801;3390:18;;3386:1;:22;3366:801;;;3429:14;3446:7;;3454:1;3446:10;;;;;;;;;;;;;3429:27;;3470:11;3484:10;;3495:1;3484:13;;;;;;;;;;;;;;;3470:27;;3890:21;3904:6;3890:13;:21::i;:::-;3882:49;;;::::0;;-1:-1:-1;;;3882:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3882:49:1;;;;;;;;;;;;;::::2;;3953:22;3968:6;3953:14;:22::i;:::-;3945:55;;;::::0;;-1:-1:-1;;;3945:55:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3945:55:1;;;;;;;;;;;;;::::2;;4022:19;4035:5;4022:12;:19::i;:::-;4014:45;;;::::0;;-1:-1:-1;;;4014:45:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4014:45:1;;;;;;;;;;;;;::::2;;4074:17;4094:5;4100:6;4094:13;;;;;;;;;;;;;;;;;;4074:33;;4134:21;4149:5;4134:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4121:10;::::0;;::::2;:34:::0;-1:-1:-1;;3410:3:1::2;;3366:801;;;-1:-1:-1::0;4232:4:1::2;4218:11:::0;::::2;:18:::0;;-1:-1:-1;;;;4218:18:1::2;-1:-1:-1::0;;;4218:18:1::2;::::0;;;;4262:8;;4251:40:::2;::::0;;-1:-1:-1;;;;;4272:18:1;;::::2;4251:40:::0;;;4262:8;;4251:40:::2;::::0;;;;;::::2;::::0;;::::2;787:1:21;2743:1555:1::0;;;;:::o;1152:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;:::o;1003:113:22:-;1062:4;1085:24;:11;1101:7;1085:15;:24::i;:::-;1078:31;;1003:113;;;;:::o;1046:73:21:-;1088:24;1101:10;1088:12;:24::i;:::-;1046:73::o;4144:332:3:-;4212:7;;;;;-1:-1:-1;;;;;4272:25:3;;4264:58;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4351:26:3;;;4332:16;4351:26;;;;;;;;;;;;4332:45;;;;;;;;;;;-1:-1:-1;4332:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4332:45:3;;;;;;;;;;;;-1:-1:-1;4332:45:3;4144:332::o;8046:101::-;8123:17;;;;;;;;8046:101::o;1227:81:22:-;1273:28;1290:10;1273:16;:28::i;7475:117:1:-;2562:17:3;;;;;;;2561:18;2553:49;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:23:1::2;:21;:23::i;903:26:4:-:0;;;;:::o;6323:145:1:-;6416:10;:13;6431:11;:14;6447:10;:13;6323:145;;;:::o;4859:1108:3:-;2212:19;;5003:7;;2212:19;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5043:1:3::1;5034:11:::0;;::::1;;;:16;5026:54;;;::::0;;-1:-1:-1;;;5026:54:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5098:25:3;::::1;5090:65;;;::::0;;-1:-1:-1;;;5090:65:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5173:26:3;;::::1;5223:1;5173:26:::0;;;::::1;::::0;;;;;;:38:::1;;::::0;::::1;:52:::0;5165:88:::1;;;::::0;;-1:-1:-1;;;5165:88:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5280:5;:12:::0;;5679:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5679:58:3;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;;5679:58:3;;;;;5747:16;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5747:16:3::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;-1:-1:-1;;5747:16:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;5802:13;;5280:12;;5679:58;;5280:12;;5802:13;::::1;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;5773:26:3;;::::1;::::0;;;;;;;;;;5802:13:::1;::::0;;;::::1;::::0;;::::1;5773:42:::0;;;;-1:-1:-1;5773:42:3;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;-1:-1:-1::0;;;;;;5773:42:3;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;5773:42:3::1;;::::0;;::::1;;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;5846:18;;:25:::1;::::0;:22:::1;:25::i;:::-;5825:18;:46:::0;5886:51:::1;::::0;;;;;5932:4:::1;5886:51;::::0;::::1;::::0;;;-1:-1:-1;;;;;5886:51:3;::::1;::::0;5901:6;;5886:51:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;5954:6:3;4859:1108;-1:-1:-1;;;;4859:1108:3:o;6599:123:1:-;2212:19:3;;;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:26:1::2;:24;:26::i;4466:1656::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;2562:17:::1;::::0;::::1;::::0;::::1;;;2561:18;2553:49;;;::::0;;-1:-1:-1;;;2553:49:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;::::1;;1592:17:1::2;::::0;::::2;;1591:18;1583:49;;;::::0;;-1:-1:-1;;;1583:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;::::2;;900:23:22::3;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:13:1::4;::::0;::::4;;1813:14;1805:49;;;::::0;;-1:-1:-1;;;1805:49:1;;::::4;;::::0;::::4;::::0;::::4;::::0;;;;-1:-1:-1;;;1805:49:1;;;;;;;;;;;;;::::4;;4683:1:::5;4662:18;;:22;4654:54;;;::::0;;-1:-1:-1;;;4654:54:1;;::::5;;::::0;::::5;::::0;::::5;::::0;;;;-1:-1:-1;;;4654:54:1;;;;;;;;;;;;;::::5;;4718:19;;:::i;:::-;4747:20;;:::i;:::-;4777:21;;:::i;:::-;4808:20;;:::i;:::-;4844:9;4839:881;4863:5;:12:::0;4859:16;::::5;4839:881;;;4906:5;4912:1;4906:8;;;;;;;;;::::0;;;::::5;::::0;;;;4896:18:::5;::::0;;::::5;::::0;::::5;::::0;;4906:8:::5;::::0;;;::::5;::::0;;::::5;4896:18:::0;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;::::5;::::0;-1:-1:-1;;;;;4896:18:1::5;::::0;;;;::::5;::::0;::::5;::::0;;;;;::::5;::::0;::::5;::::0;::::5;;;::::0;::::5;::::0;;;;::::5;::::0;;::::5;::::0;-1:-1:-1;4896:18:1;;;;-1:-1:-1;4896:18:1;4932:51:::5;;;4969:8;:14;;;4953:7;:13;;;:30;4932:51;4928:213;;;5118:8;;4928:213;5341:8;:14;;;5325:7;:13;;;:30;5321:389;;;5462:7:::0;;5425:8;5386:9;-1:-1:-1;5321:389:1::5;;;5510:9;:15;;;5494:7;:13;;;:31;5490:220;;;5595:7:::0;;5556:9;-1:-1:-1;5490:220:1::5;;;5643:8;:14;;;5627:7;:13;;;:30;5623:87;;;5688:7;5677:18;;5623:87;4877:3;;4839:881;;;-1:-1:-1::0;5730:21:1;;:10:::5;:21:::0;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;;;;;5730:21:1;;::::5;-1:-1:-1::0;;;;;5730:21:1;;::::5;;::::0;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;5730:21:1;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;-1:-1:-1;5730:21:1;;::::5;::::0;;;;;5761:23;;:11:::5;:23:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;;::::5;::::0;;;5794:21;;:10:::5;:21:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;;::::5;::::0;;::::5;;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;::::5;::::0;;;5825:13:::5;:20:::0;;;;::::5;-1:-1:-1::0;5825:20:1;;::::5;::::0;;;5860:74;;;;;5890:22;;;::::5;5860:74:::0;;::::5;::::0;;;;;;;;;;;;;;;;::::5;::::0;;;;;;;;::::5;5964:11;:14:::0;5980:23;;6005:17;;5949:77:::5;::::0;;;;;-1:-1:-1;;;;;5980:23:1;;::::5;5949:77;::::0;::::5;::::0;;;;;5980:23:::5;5949:77:::0;;;;;::::5;::::0;;;;;;;::::5;6056:10;:13:::0;6071:22;;6095:16;;;6041:74:::5;::::0;;;;;-1:-1:-1;;;;;6071:22:1;;::::5;6041:74:::0;;::::5;::::0;;;;;;;;6113:1:::5;6041:74:::0;;;;;::::5;::::0;;;;;;;::::5;1864:1;;;;4466:1656::o:0;1034:100:20:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:18:20::1;1119:7;1109:9;:18::i;8296:101:1:-:0;8373:17;;;;8296:101;:::o;7775:102::-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7852:18:1::2;:16;:18::i;1140:97:20:-:0;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:21:20::1;1222:7;1209:12;:21::i;855:17:4:-:0;;;;:::o;8059:102:1:-;1592:17;;;;1591:18;1583:49;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8137:17:1::2;:15;:17::i;6852:123::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:25:1::2;:23;:25::i;396:183:18:-:0;471:1;459:9;:13;451:59;;;;-1:-1:-1;;;451:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:47;;;545:9;525:47;;;;556:15;;533:10;;525:47;;;;;;;;;396:183::o;7231:105:3:-;7310:19;;;;7231:105;:::o;1122:99:22:-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;6178:343:3:-:0;6281:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;6312:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;2447:17:::2;::::0;::::2;::::0;::::2;;;2439:50;;;::::0;;-1:-1:-1;;;2439:50:3;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;::::2;;6359:17:::3;6379:5;6385:6;6379:13;;;;;;;;;::::0;;;::::3;::::0;;;;::::3;::::0;;;::::3;;6402:17;::::0;::::3;:32:::0;;;6478:16:::3;::::0;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;6379:13;;-1:-1:-1;;;;;;6478:16:3;;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;;::::3;2499:1;2732::::1;6178:343:::0;;;:::o;801:105:21:-;856:4;879:20;:7;891;879:11;:20::i;9164:83:3:-;9220:20;9233:6;9220:12;:20::i;3246:632:4:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1653:15:4::1;::::0;::::1;;1652:16;1644:53;;;::::0;;-1:-1:-1;;;1644:53:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3413:19:::2;3435:43;3467:10:::0;3435:27:::2;:10:::0;3450:11;3435:14:::2;:27::i;:::-;:31:::0;::::2;:43::i;:::-;3413:65;;3511:21;3496:11;:36;;3488:97;;;;-1:-1:-1::0;;;3488:97:4::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3613:24;::::0;;;;::::2;::::0;;;;;-1:-1:-1;3613:24:4::2;::::0;;::::2;::::0;;;3595:15:::2;:42:::0;;;;;;-1:-1:-1;;3595:42:4;;::::2;::::0;;;3666:25;;;;::::2;::::0;;;;;;::::2;::::0;;;3647:16:::2;:44:::0;;;;;;;::::2;::::0;;3719:24;;;;::::2;::::0;;;;;;::::2;::::0;;;;3701:15:::2;:42:::0;;;;;;;::::2;::::0;;3753:15:::2;:22:::0;;;;::::2;3613:24:::0;3753:22:::2;::::0;;3790:81;;;;;;;::::2;::::0;;;;;;;;;3855:15:::2;3790:81:::0;;;;;;3843:10:::2;::::0;3790:81:::2;::::0;;;;;;;;::::2;1707:1;3246:632:::0;;;:::o;7167:117:1:-;2447:17:3;;;;;;;2439:50;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:24:1::2;:22;:24::i;1314:136:22:-:0;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;-1:-1:-1;564:27:23;;;423:175::o;10872:115:3:-;10967:5;:12;-1:-1:-1;10958:21:3;10872:115::o;5624:282:4:-;5748:22;;5694:4;;-1:-1:-1;;;;;5731:39:4;;;5748:22;;5731:39;;:99;;-1:-1:-1;5807:23:4;;-1:-1:-1;;;;;5790:40:4;;;5807:23;;5790:40;5731:99;:158;;;-1:-1:-1;;5867:22:4;;-1:-1:-1;;;;;5850:39:4;;;5867:22;;5850:39;;5624:282::o;9977:300:3:-;10036:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10059:6:::1;2934:22;2949:6;2934:14;:22::i;:::-;2933:23;2925:57;;;::::0;;-1:-1:-1;;;2925:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2925:57:3;;;;;;;;;;;;;::::1;;10077:17:::2;10097:5;10103:6;10097:13;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10120;::::0;::::2;:20:::0;;10136:4:::2;-1:-1:-1::0;;10120:20:3;;::::2;::::0;::::2;::::0;;;10171:18:::2;::::0;10097:13;;-1:-1:-1;10171:25:3::2;::::0;:18;:22:::2;:25::i;:::-;10150:18;:46:::0;;;10238:16;::::2;::::0;10229:7;;10256:13:::2;::::0;::::2;::::0;10211:59:::2;::::0;;10256:13:::2;::::0;;::::2;10211:59;;::::0;;;-1:-1:-1;;;;;10238:16:3;;::::2;::::0;10211:59:::2;::::0;;;;::::2;::::0;;::::2;2992:1;2732::::1;9977:300:::0;;:::o;10319:168::-;10392:9;10387:94;10411:7;:14;10407:1;:18;10387:94;;;10446:24;10459:7;10467:1;10459:10;;;;;;;;;;;;;;10446:12;:24::i;:::-;10427:3;;10387:94;;11029:223;11092:4;11113:21;11127:6;11113:13;:21::i;:::-;11108:65;;-1:-1:-1;11157:5:3;11150:12;;11108:65;11183:16;11202:5;11208:6;11202:13;;;;;;;;;;;;;;;;;11183:32;;;;;;;;11202:13;;;;;;;;11183:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11183:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11183:32:3;;;;;11029:223;-1:-1:-1;;;11029:223:3:o;9940:115:1:-;10045:2;10036:11;;;;;;;9940:115::o;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;9515:243:1:-;9582:27;9601:7;9582:18;:27::i;:::-;-1:-1:-1;;;;;9641:23:1;9619:19;9641:23;;;:14;:23;;;;;-1:-1:-1;9674:12:1;:20;;-1:-1:-1;;;;9674:20:1;;;9515:243::o;1929:214:20:-;2000:31;2023:7;2000:22;:31::i;:::-;-1:-1:-1;;;;;2041:25:20;;2069:5;2041:25;;;:16;:25;;;;;:33;;-1:-1:-1;;2041:33:20;;;2108:21;;:28;;-1:-1:-1;2108:25:20;:28::i;:::-;2084:21;:52;-1:-1:-1;1929:214:20:o;9801:134:3:-;9847:17;:24;;-1:-1:-1;;9847:24:3;;;;;;;;;9886:42;;;9910:17;;;;9847:24;9910:17;9886:42;;;;;;;;;;;;;;;9801:134::o;9289:144::-;9338:19;:27;;-1:-1:-1;;9338:27:3;;;9380:46;;;9360:5;9380:46;;;;;;;;;;;;;9289:144::o;8915:481:1:-;9127:24;9143:7;9127:15;:24::i;:::-;9161:13;9177:10;:17;;;;9161:33;;9204:18;9225:34;;;;;;;;9231:5;9225:34;;;;9238:7;-1:-1:-1;;;;;9225:34:1;;;;;9247:4;9225:34;;;;;;9253:5;9225:34;;;;;9204:55;;9269:10;9285:5;9269:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9269:22:1;;;;;-1:-1:-1;;;;;9269:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9327:5;9301:14;:23;9316:7;-1:-1:-1;;;;;9301:23:1;-1:-1:-1;;;;;9301:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9301:31:1;;;;;-1:-1:-1;;;;;9301:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:481;;;:::o;8462:136::-;8509:17;:25;;-1:-1:-1;;8509:25:1;;;8549:42;;;8529:5;8549:42;;;;;;;;;;;;;8462:136::o;8662:134::-;8708:17;:24;;-1:-1:-1;;8708:24:1;8728:4;8708:24;;;;;8747:42;;;8708:24;8771:17;;;;8747:42;;;;;;;;;;;;;;8662:134::o;9475:142:3:-;9523:19;:26;;-1:-1:-1;;9523:26:3;9545:4;9523:26;;;;;9564:46;;;9523:26;9590:19;;;;9564:46;;;;;;;;;;;;;;9475:142::o;1682:241:20:-;1750:28;1770:7;1750:19;:28::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:25;:28::i;10529:301:3:-;10588:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10611:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;10629:17:::2;10649:5;10655:6;10649:13;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10672;::::0;::::2;:21:::0;;-1:-1:-1;;10672:21:3::2;::::0;;10724:18:::2;::::0;10649:13;;-1:-1:-1;10724:25:3::2;::::0;-1:-1:-1;10724:22:3::2;:25::i;9623:136::-:0;9670:17;:25;;-1:-1:-1;;9670:25:3;;;;;9710:42;;;9670:25;9734:17;;;9670:25;9734:17;9710:42;;;;;;;;;;;;;;9623:136::o;1474:202:20:-;1549:27;1568:7;1549:18;:27::i;:::-;-1:-1:-1;;;;;1586:21:20;;1610:5;1586:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1586:29:20;;;1645:17;;:24;;-1:-1:-1;1645:21:20;:24::i;:::-;1625:17;:44;-1:-1:-1;1474:202:20:o;1456:144:22:-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;1243:225:20:-;1315:24;1331:7;1315:15;:24::i;:::-;1349:6;:20;;;;;;;;;;;;;-1:-1:-1;;;;;;1349:20:20;-1:-1:-1;;;;;1349:20:20;;;;;;;;-1:-1:-1;1379:21:20;;;:12;1349:20;1379:21;;;;:28;;-1:-1:-1;;1379:28:20;;;;;1437:17;;:24;;:21;:24::i;1255:132:21:-;1321:23;:7;1336;1321:14;:23::i;:::-;1359:21;;-1:-1:-1;;;;;1359:21:21;;;;;;;;1255:132;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o;1754:187:24:-;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o;1125:124:21:-;1188:20;:7;1200;1188:11;:20::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\nimport \"./ContestBracketRegistry.sol\";\nimport \"../payment/Payable.sol\";\n\n/**\n @notice Represents a hackathon contest, where organizers can control the\n stages/phases of the contest (such as registration, submission, evaluation and results)\n as well as pay prizes to the winners.\n @dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\n The ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.\n */\ncontract Hackathon is Payable, ContestBracketRegistry {\n using SafeMath for uint256;\n\n /// @dev Represents a prize to be paid to a winner.\n struct Prize {\n uint256 amount;\n bool paid;\n }\n\n uint256 public id;\n bytes32 public name;\n bytes32 public description;\n Prize internal firstPlacePrize;\n Prize internal secondPlacePrize;\n Prize internal thirdPlacePrize;\n bool internal prizesAllocated;\n\n /// @dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw.\n event PrizeAllocation(\n uint256 firstPlacePrize,\n uint256 secondPlacePrize,\n uint256 thirdPlacePrize,\n address indexed organizer,\n uint256 datetime\n );\n\n /// @dev emitted when a prize is withdraw by a winner team.\n event Withdraw(address indexed to, uint256 amount, uint8 rankPosition, address indexed requester, uint256 datetime);\n\n modifier whenPrizeNotAllocated() {\n require(!prizesAllocated, \"Prizes already allocated\");\n _;\n }\n\n modifier whenPrizeAllocated() {\n require(prizesAllocated, \"Prizes not allocated yet\");\n _;\n }\n\n modifier onlyWinnerAddress(address winnerAddress) {\n require(isWinnerAddress(winnerAddress), \"Account address is not a winner\");\n _;\n }\n\n modifier onlyValidAddress(address account) {\n require(account != address(0), \"Invalid zero address\");\n require(account != address(this), \"Address cannot be equal to contract (this) address\");\n _;\n }\n\n /**\n @notice Creates a new Hackathon contract with a specific _id, _name, desciption,\n and a specific organizer.\n @param _id {uint256} Hackathon's unique indentifier\n @param _name {bytes32} Hackathon's name. Required.\n @param _description {bytes32} Hackathon's description. Optional.\n */\n constructor(uint256 _id, bytes32 _name, bytes32 _description, address initialOrganizer)\n ContestBracketRegistry(initialOrganizer)\n {\n require(_name[0] != 0, \"Invalid name\");\n id = _id;\n name = _name;\n description = _description;\n prizesAllocated = false;\n }\n\n /**\n @notice Allows the organizer to allocate funds that's going to be distributed to winners.\n @dev It does not associate the prize with a specific account, since prizes cound be associated any moment\n by the organizers, as long as prizes were not allocated before.\n The contract needs to have enought balance to allocate funds to winners.\n */\n function allocatePrize(uint256 firstPrize, uint256 secondPrize, uint256 thirdPrize)\n external\n onlyOrganizer\n whenPrizeNotAllocated\n {\n uint256 totalPrizes = firstPrize.add(secondPrize).add(thirdPrize);\n require(totalPrizes <= address(this).balance, \"Not enough funds available in hackathon contract\");\n firstPlacePrize = Prize(firstPrize, false);\n secondPlacePrize = Prize(secondPrize, false);\n thirdPlacePrize = Prize(thirdPrize, false);\n prizesAllocated = true;\n emit PrizeAllocation(firstPrize, secondPrize, thirdPrize, msg.sender, block.timestamp);\n }\n\n /**\n @notice Allows withdrawing prizes to winners.\n @dev Winners must implement IPayable to receive funds.\n */\n function withdrawPrize(address winnerAddress)\n external\n whenRankPublished\n whenPrizeAllocated\n onlyValidAddress(winnerAddress)\n onlyWinnerAddress(winnerAddress)\n {\n address teamAddress;\n uint256 amount;\n uint8 rankPosition;\n\n if (winnerAddress == firstPlace.teamAddress) {\n teamAddress = firstPlace.teamAddress;\n amount = firstPlacePrize.amount;\n rankPosition = 1;\n require(!firstPlacePrize.paid, \"Prize already paid for first place\");\n firstPlacePrize.paid = true;\n } else if (winnerAddress == secondPlace.teamAddress) {\n teamAddress = secondPlace.teamAddress;\n amount = secondPlacePrize.amount;\n rankPosition = 2;\n require(!secondPlacePrize.paid, \"Prize already paid for second place\");\n secondPlacePrize.paid = true;\n } else if (winnerAddress == thirdPlace.teamAddress) {\n teamAddress = thirdPlace.teamAddress;\n amount = thirdPlacePrize.amount;\n rankPosition = 3;\n require(!thirdPlacePrize.paid, \"Prize already paid for third place\");\n thirdPlacePrize.paid = true;\n } else {\n revert(\"Invalid address. Address check failed. Should not reach this point.\");\n }\n\n emit Withdraw(teamAddress, amount, rankPosition, msg.sender, block.timestamp);\n // Pays winner using team addres.\n IPayable(teamAddress).deposit{value: amount}();\n }\n\n /**\n Checks if the specifier address is one of the winners\n */\n\n function isWinnerAddress(address winnerAddress) private view returns (bool) {\n return (\n winnerAddress == firstPlace.teamAddress ||\n winnerAddress == secondPlace.teamAddress ||\n winnerAddress == thirdPlace.teamAddress\n );\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "exportedSymbols": { - "Hackathon": [2089] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2090, + "id": 2175, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 1700, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 1774, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "40:31:4" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1701, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 1775, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 4216, - "src": "25:59:4", + "scope": 2175, + "sourceUnit": 3815, + "src": "73:51:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "file": "./ContestBracketRegistry.sol", - "id": 1702, + "id": 1776, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 649, - "src": "86:38:4", + "scope": 2175, + "sourceUnit": 675, + "src": "126:38:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "file": "../payment/Payable.sol", - "id": 1703, + "id": 1777, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 2904, - "src": "125:32:4", + "scope": 2175, + "sourceUnit": 3027, + "src": "165:32:4", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 1704, + "id": 1779, "name": "Payable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2903, - "src": "619:7:4", + "referencedDeclaration": 3026, + "src": "659:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Payable_$2903", + "typeIdentifier": "t_contract$_Payable_$3026", "typeString": "contract Payable" } }, - "id": 1705, + "id": 1780, "nodeType": "InheritanceSpecifier", - "src": "619:7:4" + "src": "659:7:4" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 1706, + "id": 1781, "name": "ContestBracketRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 648, - "src": "628:22:4", + "referencedDeclaration": 674, + "src": "668:22:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestBracketRegistry_$648", + "typeIdentifier": "t_contract$_ContestBracketRegistry_$674", "typeString": "contract ContestBracketRegistry" } }, - "id": 1707, + "id": 1782, "nodeType": "InheritanceSpecifier", - "src": "628:22:4" + "src": "668:22:4" } ], - "contractDependencies": [648, 1698, 2869, 2903, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 2987, 3026, 3326, 3416, 3532], "contractKind": "contract", - "documentation": "@notice Represents a hackathon contest, where organizers can control the\nstages/phases of the contest (such as registration, submission, evaluation and results)\nas well as pay prizes to the winners.\n@dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\nThe ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.", + "documentation": { + "id": 1778, + "nodeType": "StructuredDocumentation", + "src": "199:437:4", + "text": "@notice Represents a hackathon contest, where organizers can control the\nstages/phases of the contest (such as registration, submission, evaluation and results)\nas well as pay prizes to the winners.\n@dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\nThe ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}." + }, "fullyImplemented": true, - "id": 2089, - "linearizedBaseContracts": [2089, 648, 3195, 3287, 3401, 1698, 2903, 2869], + "id": 2174, + "linearizedBaseContracts": [2174, 674, 3326, 3416, 3532, 1772, 3026, 2987], "name": "Hackathon", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1710, + "id": 1785, "libraryName": { - "contractScope": null, - "id": 1708, + "id": 1783, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "663:8:4", + "referencedDeclaration": 3814, + "src": "703:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "657:27:4", + "src": "697:27:4", "typeName": { - "id": 1709, + "id": 1784, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "676:7:4", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1057,15 +1004,16 @@ }, { "canonicalName": "Hackathon.Prize", - "id": 1715, + "id": 1790, "members": [ { "constant": false, - "id": 1712, + "id": 1787, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "769:14:4", + "scope": 1790, + "src": "809:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1073,25 +1021,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1711, + "id": 1786, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:4", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1714, + "id": 1789, + "mutability": "mutable", "name": "paid", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "793:9:4", + "scope": 1790, + "src": "833:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1099,32 +1047,33 @@ "typeString": "bool" }, "typeName": { - "id": 1713, + "id": 1788, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "793:4:4", + "src": "833:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], "name": "Prize", "nodeType": "StructDefinition", - "scope": 2089, - "src": "746:63:4", + "scope": 2174, + "src": "786:63:4", "visibility": "public" }, { "constant": false, - "id": 1717, + "functionSelector": "af640d0f", + "id": 1792, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "815:17:4", + "scope": 2174, + "src": "855:17:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1132,25 +1081,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1716, + "id": 1791, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "815:7:4", + "src": "855:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1719, + "functionSelector": "06fdde03", + "id": 1794, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "838:19:4", + "scope": 2174, + "src": "878:19:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1158,25 +1108,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 1718, + "id": 1793, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "838:7:4", + "src": "878:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1721, + "functionSelector": "7284e416", + "id": 1796, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "863:26:4", + "scope": 2174, + "src": "903:26:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1184,109 +1135,106 @@ "typeString": "bytes32" }, "typeName": { - "id": 1720, + "id": 1795, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "863:7:4", + "src": "903:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1723, + "id": 1798, + "mutability": "mutable", "name": "firstPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "895:30:4", + "scope": 2174, + "src": "935:30:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1722, + "id": 1797, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "895:5:4", + "referencedDeclaration": 1790, + "src": "935:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1725, + "id": 1800, + "mutability": "mutable", "name": "secondPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "931:31:4", + "scope": 2174, + "src": "971:31:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1724, + "id": 1799, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "931:5:4", + "referencedDeclaration": 1790, + "src": "971:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1727, + "id": 1802, + "mutability": "mutable", "name": "thirdPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "968:30:4", + "scope": 2174, + "src": "1008:30:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1726, + "id": 1801, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "968:5:4", + "referencedDeclaration": 1790, + "src": "1008:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1729, + "id": 1804, + "mutability": "mutable", "name": "prizesAllocated", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "1004:29:4", + "scope": 2174, + "src": "1044:29:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1294,36 +1242,41 @@ "typeString": "bool" }, "typeName": { - "id": 1728, + "id": 1803, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1004:4:4", + "src": "1044:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw.", - "id": 1741, + "documentation": { + "id": 1805, + "nodeType": "StructuredDocumentation", + "src": "1080:135:4", + "text": "@dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw." + }, + "id": 1817, "name": "PrizeAllocation", "nodeType": "EventDefinition", "parameters": { - "id": 1740, + "id": 1816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1807, "indexed": false, + "mutability": "mutable", "name": "firstPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1211:23:4", + "scope": 1817, + "src": "1251:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1331,26 +1284,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1730, + "id": 1806, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1211:7:4", + "src": "1251:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1733, + "id": 1809, "indexed": false, + "mutability": "mutable", "name": "secondPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1244:24:4", + "scope": 1817, + "src": "1284:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1358,26 +1311,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 1808, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1244:7:4", + "src": "1284:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1735, + "id": 1811, "indexed": false, + "mutability": "mutable", "name": "thirdPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1278:23:4", + "scope": 1817, + "src": "1318:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1385,26 +1338,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1734, + "id": 1810, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1278:7:4", + "src": "1318:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1737, + "id": 1813, "indexed": true, + "mutability": "mutable", "name": "organizer", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1311:25:4", + "scope": 1817, + "src": "1351:25:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1412,27 +1365,27 @@ "typeString": "address" }, "typeName": { - "id": 1736, + "id": 1812, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1311:7:4", + "src": "1351:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1739, + "id": 1815, "indexed": false, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1346:16:4", + "scope": 1817, + "src": "1386:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1440,41 +1393,46 @@ "typeString": "uint256" }, "typeName": { - "id": 1738, + "id": 1814, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1346:7:4", + "src": "1386:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1201:167:4" + "src": "1241:167:4" }, - "src": "1180:189:4" + "src": "1220:189:4" }, { "anonymous": false, - "documentation": "@dev emitted when a prize is withdraw by a winner team.", - "id": 1753, + "documentation": { + "id": 1818, + "nodeType": "StructuredDocumentation", + "src": "1415:59:4", + "text": "@dev emitted when a prize is withdraw by a winner team." + }, + "id": 1830, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { - "id": 1752, + "id": 1829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1743, + "id": 1820, "indexed": true, + "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1454:18:4", + "scope": 1830, + "src": "1494:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,27 +1440,27 @@ "typeString": "address" }, "typeName": { - "id": 1742, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1454:7:4", + "src": "1494:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1745, + "id": 1822, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1474:14:4", + "scope": 1830, + "src": "1514:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1510,26 +1468,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1744, + "id": 1821, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1474:7:4", + "src": "1514:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1747, + "id": 1824, "indexed": false, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1490:18:4", + "scope": 1830, + "src": "1530:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1537,26 +1495,26 @@ "typeString": "uint8" }, "typeName": { - "id": 1746, + "id": 1823, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1490:5:4", + "src": "1530:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1749, + "id": 1826, "indexed": true, + "mutability": "mutable", "name": "requester", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1510:25:4", + "scope": 1830, + "src": "1550:25:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1564,27 +1522,27 @@ "typeString": "address" }, "typeName": { - "id": 1748, + "id": 1825, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1510:7:4", + "src": "1550:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1751, + "id": 1828, "indexed": false, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1537:16:4", + "scope": 1830, + "src": "1577:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1592,36 +1550,33 @@ "typeString": "uint256" }, "typeName": { - "id": 1750, + "id": 1827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1537:7:4", + "src": "1577:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1453:101:4" + "src": "1493:101:4" }, - "src": "1439:116:4" + "src": "1479:116:4" }, { "body": { - "id": 1762, + "id": 1839, "nodeType": "Block", - "src": "1594:81:4", + "src": "1634:81:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1757, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -1629,15 +1584,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1612:16:4", + "src": "1652:16:4", "subExpression": { - "argumentTypes": null, - "id": 1756, + "id": 1833, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1613:15:4", + "referencedDeclaration": 1804, + "src": "1653:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1649,17 +1603,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a657320616c726561647920616c6c6f6361746564", - "id": 1758, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:26:4", - "subdenomination": null, + "src": "1670:26:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bf96c3e55398b1e61a28ff861bf1a69cf40f8effec6e352b73c139e92b58147e", "typeString": "literal_string \"Prizes already allocated\"" @@ -1678,18 +1630,18 @@ "typeString": "literal_string \"Prizes already allocated\"" } ], - "id": 1755, + "id": 1832, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1604:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1644:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1759, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": false, @@ -1697,71 +1649,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:53:4", + "src": "1644:53:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1760, + "id": 1837, "nodeType": "ExpressionStatement", - "src": "1604:53:4" + "src": "1644:53:4" }, { - "id": 1761, + "id": 1838, "nodeType": "PlaceholderStatement", - "src": "1667:1:4" + "src": "1707:1:4" } ] }, - "documentation": null, - "id": 1763, + "id": 1840, "name": "whenPrizeNotAllocated", "nodeType": "ModifierDefinition", "parameters": { - "id": 1754, + "id": 1831, "nodeType": "ParameterList", "parameters": [], - "src": "1591:2:4" + "src": "1631:2:4" }, - "src": "1561:114:4", + "src": "1601:114:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1771, + "id": 1848, "nodeType": "Block", - "src": "1711:80:4", + "src": "1751:80:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1766, + "id": 1843, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1729:15:4", + "referencedDeclaration": 1804, + "src": "1769:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5072697a6573206e6f7420616c6c6f636174656420796574", - "id": 1767, + "id": 1844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1746:26:4", - "subdenomination": null, + "src": "1786:26:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fc7e4d62b3e9c65907c4925855d5646179a53c0fb400b0698f5dbbb3d0773704", "typeString": "literal_string \"Prizes not allocated yet\"" @@ -1780,18 +1729,18 @@ "typeString": "literal_string \"Prizes not allocated yet\"" } ], - "id": 1765, + "id": 1842, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1721:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1761:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1768, + "id": 1845, "isConstant": false, "isLValue": false, "isPure": false, @@ -1799,57 +1748,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1721:52:4", + "src": "1761:52:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1769, + "id": 1846, "nodeType": "ExpressionStatement", - "src": "1721:52:4" + "src": "1761:52:4" }, { - "id": 1770, + "id": 1847, "nodeType": "PlaceholderStatement", - "src": "1783:1:4" + "src": "1823:1:4" } ] }, - "documentation": null, - "id": 1772, + "id": 1849, "name": "whenPrizeAllocated", "nodeType": "ModifierDefinition", "parameters": { - "id": 1764, + "id": 1841, "nodeType": "ParameterList", "parameters": [], - "src": "1708:2:4" + "src": "1748:2:4" }, - "src": "1681:110:4", + "src": "1721:110:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1784, + "id": 1861, "nodeType": "Block", - "src": "1847:102:4", + "src": "1887:102:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1778, + "id": 1855, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1774, - "src": "1881:13:4", + "referencedDeclaration": 1851, + "src": "1921:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1863,18 +1810,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1854, "name": "isWinnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "1865:15:4", + "referencedDeclaration": 2173, + "src": "1905:15:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -1882,24 +1829,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1865:30:4", + "src": "1905:30:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4163636f756e742061646472657373206973206e6f7420612077696e6e6572", - "id": 1780, + "id": 1857, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1897:33:4", - "subdenomination": null, + "src": "1937:33:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_97b31c34870bc516686cd656eda50f3a0b810bd21d94f28d52affe849bf23342", "typeString": "literal_string \"Account address is not a winner\"" @@ -1918,18 +1864,18 @@ "typeString": "literal_string \"Account address is not a winner\"" } ], - "id": 1776, + "id": 1853, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1857:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1897:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, @@ -1937,38 +1883,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1857:74:4", + "src": "1897:74:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1782, + "id": 1859, "nodeType": "ExpressionStatement", - "src": "1857:74:4" + "src": "1897:74:4" }, { - "id": 1783, + "id": 1860, "nodeType": "PlaceholderStatement", - "src": "1941:1:4" + "src": "1981:1:4" } ] }, - "documentation": null, - "id": 1785, + "id": 1862, "name": "onlyWinnerAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 1775, + "id": 1852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1774, + "id": 1851, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 1785, - "src": "1824:21:4", + "scope": 1862, + "src": "1864:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1976,54 +1923,51 @@ "typeString": "address" }, "typeName": { - "id": 1773, + "id": 1850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1824:7:4", + "src": "1864:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1823:23:4" + "src": "1863:23:4" }, - "src": "1797:152:4", + "src": "1837:152:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1808, + "id": 1887, "nodeType": "Block", - "src": "1998:179:4", + "src": "2038:179:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1794, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1790, + "id": 1867, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "2016:7:4", + "referencedDeclaration": 1864, + "src": "2056:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2032,20 +1976,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1792, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2035:1:4", - "subdenomination": null, + "src": "2075:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2060,20 +2001,26 @@ "typeString": "int_const 0" } ], - "id": 1791, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2027:7:4", + "src": "2067:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:4", + "typeDescriptions": {} + } }, - "id": 1793, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, @@ -2081,30 +2028,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:10:4", + "src": "2067:10:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2016:21:4", + "src": "2056:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 1795, + "id": 1873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2039:22:4", - "subdenomination": null, + "src": "2079:22:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -2123,18 +2069,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 1789, + "id": 1866, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2008:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2048:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1796, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -2142,39 +2088,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:54:4", + "src": "2048:54:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1797, + "id": 1875, "nodeType": "ExpressionStatement", - "src": "2008:54:4" + "src": "2048:54:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1803, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1799, + "id": 1877, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "2080:7:4", + "referencedDeclaration": 1864, + "src": "2120:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2183,18 +2127,16 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1801, + "id": 1880, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4270, - "src": "2099:4:4", + "referencedDeclaration": 4294967268, + "src": "2139:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -2202,24 +2144,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 1800, + "id": 1879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2091:7:4", + "src": "2131:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2131:7:4", + "typeDescriptions": {} + } }, - "id": 1802, + "id": 1881, "isConstant": false, "isLValue": false, "isPure": false, @@ -2227,30 +2175,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2091:13:4", + "src": "2131:13:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2080:24:4", + "src": "2120:24:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373", - "id": 1804, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2106:52:4", - "subdenomination": null, + "src": "2146:52:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83cda136770e17f6f31be761df65fed1b68fd4b5f98b2d3b5153d11abf7a1099", "typeString": "literal_string \"Address cannot be equal to contract (this) address\"" @@ -2269,18 +2216,18 @@ "typeString": "literal_string \"Address cannot be equal to contract (this) address\"" } ], - "id": 1798, + "id": 1876, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2072:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2112:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1805, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": false, @@ -2288,38 +2235,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2072:87:4", + "src": "2112:87:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1806, + "id": 1885, "nodeType": "ExpressionStatement", - "src": "2072:87:4" + "src": "2112:87:4" }, { - "id": 1807, + "id": 1886, "nodeType": "PlaceholderStatement", - "src": "2169:1:4" + "src": "2209:1:4" } ] }, - "documentation": null, - "id": 1809, + "id": 1888, "name": "onlyValidAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 1788, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 1864, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1981:15:4", + "scope": 1888, + "src": "2021:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2327,74 +2275,68 @@ "typeString": "address" }, "typeName": { - "id": 1786, + "id": 1863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1981:7:4", + "src": "2021:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1980:17:4" + "src": "2020:17:4" }, - "src": "1955:222:4", + "src": "1995:222:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1848, + "id": 1928, "nodeType": "Block", - "src": "2670:164:4", + "src": "2695:164:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 1828, + "id": 1908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1824, + "id": 1904, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "2688:5:4", + "referencedDeclaration": 1893, + "src": "2713:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1826, + "id": 1906, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1825, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2694:1:4", - "subdenomination": null, + "src": "2719:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2406,7 +2348,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2688:8:4", + "src": "2713:8:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2415,41 +2357,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1827, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2700:1:4", - "subdenomination": null, + "src": "2725:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2688:13:4", + "src": "2713:13:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964206e616d65", - "id": 1829, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2703:14:4", - "subdenomination": null, + "src": "2728:14:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_19bb2f3dcef9fe4d075b4ea12031255ac5db5257bcefc4252f155c870adc52ea", "typeString": "literal_string \"Invalid name\"" @@ -2468,18 +2406,18 @@ "typeString": "literal_string \"Invalid name\"" } ], - "id": 1823, + "id": 1903, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2680:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2705:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1830, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, @@ -2487,32 +2425,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2680:38:4", + "src": "2705:38:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1831, + "id": 1911, "nodeType": "ExpressionStatement", - "src": "2680:38:4" + "src": "2705:38:4" }, { "expression": { - "argumentTypes": null, - "id": 1834, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1832, + "id": 1912, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "2728:2:4", + "referencedDeclaration": 1792, + "src": "2753:2:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2521,44 +2458,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1833, + "id": 1913, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "2733:3:4", + "referencedDeclaration": 1891, + "src": "2758:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2728:8:4", + "src": "2753:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1835, + "id": 1915, "nodeType": "ExpressionStatement", - "src": "2728:8:4" + "src": "2753:8:4" }, { "expression": { - "argumentTypes": null, - "id": 1838, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1836, + "id": 1916, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "2746:4:4", + "referencedDeclaration": 1794, + "src": "2771:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2567,44 +2501,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1837, + "id": 1917, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "2753:5:4", + "referencedDeclaration": 1893, + "src": "2778:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2746:12:4", + "src": "2771:12:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1839, + "id": 1919, "nodeType": "ExpressionStatement", - "src": "2746:12:4" + "src": "2771:12:4" }, { "expression": { - "argumentTypes": null, - "id": 1842, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1840, + "id": 1920, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1721, - "src": "2768:11:4", + "referencedDeclaration": 1796, + "src": "2793:11:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2613,44 +2544,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1841, + "id": 1921, "name": "_description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "2782:12:4", + "referencedDeclaration": 1895, + "src": "2807:12:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2768:26:4", + "src": "2793:26:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1843, + "id": 1923, "nodeType": "ExpressionStatement", - "src": "2768:26:4" + "src": "2793:26:4" }, { "expression": { - "argumentTypes": null, - "id": 1846, + "id": 1926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1844, + "id": 1924, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "2804:15:4", + "referencedDeclaration": 1804, + "src": "2829:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2659,87 +2587,89 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1845, + "id": 1925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2822:5:4", - "subdenomination": null, + "src": "2847:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2804:23:4", + "src": "2829:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1847, + "id": 1927, "nodeType": "ExpressionStatement", - "src": "2804:23:4" + "src": "2829:23:4" } ] }, - "documentation": "@notice Creates a new Hackathon contract with a specific _id, _name, desciption,\nand a specific organizer.\n@param _id {uint256} Hackathon's unique indentifier\n@param _name {bytes32} Hackathon's name. Required.\n@param _description {bytes32} Hackathon's description. Optional.", - "id": 1849, + "documentation": { + "id": 1889, + "nodeType": "StructuredDocumentation", + "src": "2223:326:4", + "text": "@notice Creates a new Hackathon contract with a specific _id, _name, desciption,\nand a specific organizer.\n@param _id {uint256} Hackathon's unique indentifier\n@param _name {bytes32} Hackathon's name. Required.\n@param _description {bytes32} Hackathon's description. Optional." + }, + "id": 1929, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1820, + "id": 1900, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "2648:16:4", + "referencedDeclaration": 1897, + "src": "2673:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1821, + "id": 1901, "modifierName": { - "argumentTypes": null, - "id": 1819, + "id": 1899, "name": "ContestBracketRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 648, - "src": "2625:22:4", + "referencedDeclaration": 674, + "src": "2650:22:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$648_$", + "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$674_$", "typeString": "type(contract ContestBracketRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "2625:40:4" + "src": "2650:40:4" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1818, + "id": 1898, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1811, + "id": 1891, + "mutability": "mutable", "name": "_id", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2526:11:4", + "scope": 1929, + "src": "2566:11:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2747,25 +2677,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1810, + "id": 1890, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2526:7:4", + "src": "2566:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1813, + "id": 1893, + "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2539:13:4", + "scope": 1929, + "src": "2579:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2773,25 +2703,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1812, + "id": 1892, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2539:7:4", + "src": "2579:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1815, + "id": 1895, + "mutability": "mutable", "name": "_description", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2554:20:4", + "scope": 1929, + "src": "2594:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2799,25 +2729,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1814, + "id": 1894, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2554:7:4", + "src": "2594:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1817, + "id": 1897, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2576:24:4", + "scope": 1929, + "src": "2616:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2825,50 +2755,50 @@ "typeString": "address" }, "typeName": { - "id": 1816, + "id": 1896, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2576:7:4", + "src": "2616:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2525:76:4" + "src": "2565:76:4" }, "returnParameters": { - "id": 1822, + "id": 1902, "nodeType": "ParameterList", "parameters": [], - "src": "2670:0:4" + "src": "2695:0:4" }, - "scope": 2089, - "src": "2514:320:4", + "scope": 2174, + "src": "2554:305:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1916, + "id": 1999, "nodeType": "Block", - "src": "3378:463:4", + "src": "3403:475:4", "statements": [ { - "assignments": [1863], + "assignments": [1944], "declarations": [ { "constant": false, - "id": 1863, + "id": 1944, + "mutability": "mutable", "name": "totalPrizes", "nodeType": "VariableDeclaration", - "scope": 1916, - "src": "3388:19:4", + "scope": 1999, + "src": "3413:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2876,31 +2806,28 @@ "typeString": "uint256" }, "typeName": { - "id": 1862, + "id": 1943, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3388:7:4", + "src": "3413:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1871, + "id": 1952, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1869, + "id": 1950, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3442:10:4", + "referencedDeclaration": 1936, + "src": "3467:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2915,16 +2842,14 @@ } ], "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1866, + "id": 1947, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3425:11:4", + "referencedDeclaration": 1934, + "src": "3450:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2939,33 +2864,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1864, + "id": 1945, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3410:10:4", + "referencedDeclaration": 1932, + "src": "3435:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1865, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3410:14:4", + "referencedDeclaration": 3647, + "src": "3435:14:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1867, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -2973,27 +2897,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3410:27:4", + "src": "3435:27:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1868, + "id": 1949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3410:31:4", + "referencedDeclaration": 3647, + "src": "3435:31:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1870, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -3001,38 +2926,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3410:43:4", + "src": "3435:43:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3388:65:4" + "src": "3413:65:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1878, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1873, + "id": 1954, "name": "totalPrizes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "3471:11:4", + "referencedDeclaration": 1944, + "src": "3496:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3041,20 +2964,17 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1875, + "id": 1957, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4270, - "src": "3494:4:4", + "referencedDeclaration": 4294967268, + "src": "3519:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -3062,24 +2982,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 1874, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3486:7:4", + "src": "3511:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3511:7:4", + "typeDescriptions": {} + } }, - "id": 1876, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": false, @@ -3087,44 +3013,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3486:13:4", + "src": "3511:13:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1877, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3486:21:4", + "src": "3511:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3471:36:4", + "src": "3496:36:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e7472616374", - "id": 1879, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3509:50:4", - "subdenomination": null, + "src": "3534:50:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a246f0e358a4bd74091742f06fd7de38f1bdc745c64b8ecee65bb0cdd6477163", "typeString": "literal_string \"Not enough funds available in hackathon contract\"" @@ -3143,18 +3067,18 @@ "typeString": "literal_string \"Not enough funds available in hackathon contract\"" } ], - "id": 1872, + "id": 1953, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3463:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3488:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1880, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": false, @@ -3162,67 +3086,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3463:97:4", + "src": "3488:97:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1881, + "id": 1963, "nodeType": "ExpressionStatement", - "src": "3463:97:4" + "src": "3488:97:4" }, { "expression": { - "argumentTypes": null, - "id": 1887, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1882, + "id": 1964, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "3570:15:4", + "referencedDeclaration": 1798, + "src": "3595:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1884, + "id": 1966, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3594:10:4", + "referencedDeclaration": 1932, + "src": "3619:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1885, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3606:5:4", - "subdenomination": null, + "src": "3631:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3241,18 +3160,18 @@ "typeString": "bool" } ], - "id": 1883, + "id": 1965, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3588:5:4", + "referencedDeclaration": 1790, + "src": "3613:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1886, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": false, @@ -3260,73 +3179,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3588:24:4", + "src": "3613:24:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3570:42:4", + "src": "3595:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1888, + "id": 1970, "nodeType": "ExpressionStatement", - "src": "3570:42:4" + "src": "3595:42:4" }, { "expression": { - "argumentTypes": null, - "id": 1894, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1889, + "id": 1971, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "3622:16:4", + "referencedDeclaration": 1800, + "src": "3647:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1891, + "id": 1973, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3647:11:4", + "referencedDeclaration": 1934, + "src": "3672:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1892, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3660:5:4", - "subdenomination": null, + "src": "3685:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3345,18 +3259,18 @@ "typeString": "bool" } ], - "id": 1890, + "id": 1972, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3641:5:4", + "referencedDeclaration": 1790, + "src": "3666:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1893, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": false, @@ -3364,73 +3278,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3641:25:4", + "src": "3666:25:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3622:44:4", + "src": "3647:44:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1895, + "id": 1977, "nodeType": "ExpressionStatement", - "src": "3622:44:4" + "src": "3647:44:4" }, { "expression": { - "argumentTypes": null, - "id": 1901, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1896, + "id": 1978, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "3676:15:4", + "referencedDeclaration": 1802, + "src": "3701:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1898, + "id": 1980, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3700:10:4", + "referencedDeclaration": 1936, + "src": "3725:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1899, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:5:4", - "subdenomination": null, + "src": "3737:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3449,18 +3358,18 @@ "typeString": "bool" } ], - "id": 1897, + "id": 1979, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3694:5:4", + "referencedDeclaration": 1790, + "src": "3719:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1900, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, @@ -3468,38 +3377,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3694:24:4", + "src": "3719:24:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3676:42:4", + "src": "3701:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1902, + "id": 1984, "nodeType": "ExpressionStatement", - "src": "3676:42:4" + "src": "3701:42:4" }, { "expression": { - "argumentTypes": null, - "id": 1905, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1903, + "id": 1985, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "3728:15:4", + "referencedDeclaration": 1804, + "src": "3753:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3508,113 +3416,117 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1904, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3746:4:4", - "subdenomination": null, + "src": "3771:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3728:22:4", + "src": "3753:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1906, + "id": 1988, "nodeType": "ExpressionStatement", - "src": "3728:22:4" + "src": "3753:22:4" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1908, + "id": 1990, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3781:10:4", + "referencedDeclaration": 1932, + "src": "3806:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1909, + "id": 1991, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3793:11:4", + "referencedDeclaration": 1934, + "src": "3818:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1910, + "id": 1992, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3806:10:4", + "referencedDeclaration": 1936, + "src": "3831:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1911, + "id": 1993, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3818:3:4", + "referencedDeclaration": 4294967281, + "src": "3843:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1912, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3818:10:4", + "src": "3843:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 1913, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "3830:3:4", + "expression": { + "id": 1995, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3855:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3855:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3644,18 +3556,18 @@ "typeString": "uint256" } ], - "id": 1907, + "id": 1989, "name": "PrizeAllocation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "3765:15:4", + "referencedDeclaration": 1817, + "src": "3790:15:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256,address,uint256)" } }, - "id": 1914, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, @@ -3663,75 +3575,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3765:69:4", + "src": "3790:81:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1915, + "id": 1998, "nodeType": "EmitStatement", - "src": "3760:74:4" + "src": "3785:86:4" } ] }, - "documentation": "@notice Allows the organizer to allocate funds that's going to be distributed to winners.\n@dev It does not associate the prize with a specific account, since prizes cound be associated any moment\nby the organizers, as long as prizes were not allocated before.\nThe contract needs to have enought balance to allocate funds to winners.", - "id": 1917, + "documentation": { + "id": 1930, + "nodeType": "StructuredDocumentation", + "src": "2865:376:4", + "text": "@notice Allows the organizer to allocate funds that's going to be distributed to winners.\n@dev It does not associate the prize with a specific account, since prizes cound be associated any moment\nby the organizers, as long as prizes were not allocated before.\nThe contract needs to have enought balance to allocate funds to winners." + }, + "functionSelector": "f59ec3f9", + "id": 2000, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1858, + "id": 1939, "modifierName": { - "argumentTypes": null, - "id": 1857, + "id": 1938, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "3330:13:4", + "referencedDeclaration": 3465, + "src": "3355:13:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3330:13:4" + "src": "3355:13:4" }, { - "arguments": null, - "id": 1860, + "id": 1941, "modifierName": { - "argumentTypes": null, - "id": 1859, + "id": 1940, "name": "whenPrizeNotAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "3352:21:4", + "referencedDeclaration": 1840, + "src": "3377:21:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3352:21:4" + "src": "3377:21:4" } ], "name": "allocatePrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1856, + "id": 1937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1851, + "id": 1932, + "mutability": "mutable", "name": "firstPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3244:18:4", + "scope": 2000, + "src": "3269:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3739,25 +3655,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1850, + "id": 1931, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3244:7:4", + "src": "3269:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1853, + "id": 1934, + "mutability": "mutable", "name": "secondPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3264:19:4", + "scope": 2000, + "src": "3289:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3765,25 +3681,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1852, + "id": 1933, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3264:7:4", + "src": "3289:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1855, + "id": 1936, + "mutability": "mutable", "name": "thirdPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3285:18:4", + "scope": 2000, + "src": "3310:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3791,49 +3707,49 @@ "typeString": "uint256" }, "typeName": { - "id": 1854, + "id": 1935, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3285:7:4", + "src": "3310:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3243:61:4" + "src": "3268:61:4" }, "returnParameters": { - "id": 1861, + "id": 1942, "nodeType": "ParameterList", "parameters": [], - "src": "3378:0:4" + "src": "3403:0:4" }, - "scope": 2089, - "src": "3221:620:4", + "scope": 2174, + "src": "3246:632:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2063, + "id": 2147, "nodeType": "Block", - "src": "4181:1309:4", + "src": "4218:1322:4", "statements": [ { - "assignments": [1933], + "assignments": [2017], "declarations": [ { "constant": false, - "id": 1933, + "id": 2017, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4191:19:4", + "scope": 2147, + "src": "4228:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3841,35 +3757,34 @@ "typeString": "address" }, "typeName": { - "id": 1932, + "id": 2016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4191:7:4", + "src": "4228:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 1934, - "initialValue": null, + "id": 2018, "nodeType": "VariableDeclarationStatement", - "src": "4191:19:4" + "src": "4228:19:4" }, { - "assignments": [1936], + "assignments": [2020], "declarations": [ { "constant": false, - "id": 1936, + "id": 2020, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4220:14:4", + "scope": 2147, + "src": "4257:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3877,34 +3792,33 @@ "typeString": "uint256" }, "typeName": { - "id": 1935, + "id": 2019, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4220:7:4", + "src": "4257:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1937, - "initialValue": null, + "id": 2021, "nodeType": "VariableDeclarationStatement", - "src": "4220:14:4" + "src": "4257:14:4" }, { - "assignments": [1939], + "assignments": [2023], "declarations": [ { "constant": false, - "id": 1939, + "id": 2023, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4244:18:4", + "scope": 2147, + "src": "4281:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3912,44 +3826,40 @@ "typeString": "uint8" }, "typeName": { - "id": 1938, + "id": 2022, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4244:5:4", + "src": "4281:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "id": 1940, - "initialValue": null, + "id": 2024, "nodeType": "VariableDeclarationStatement", - "src": "4244:18:4" + "src": "4281:18:4" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1944, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1941, + "id": 2025, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4277:13:4", + "referencedDeclaration": 2003, + "src": "4314:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3958,35 +3868,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1942, + "id": 2026, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4294:10:4", + "referencedDeclaration": 89, + "src": "4331:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1943, + "id": 2027, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4294:22:4", + "referencedDeclaration": 1127, + "src": "4331:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4277:39:4", + "src": "4314:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3994,24 +3902,22 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1976, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1973, + "id": 2057, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4587:13:4", + "referencedDeclaration": 2003, + "src": "4624:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4020,35 +3926,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1974, + "id": 2058, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4604:11:4", + "referencedDeclaration": 91, + "src": "4641:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1975, + "id": 2059, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4604:23:4", + "referencedDeclaration": 1127, + "src": "4641:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4587:40:4", + "src": "4624:40:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4056,24 +3960,22 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2008, + "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2005, + "id": 2089, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4903:13:4", + "referencedDeclaration": 2003, + "src": "4940:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4082,61 +3984,56 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2006, + "id": 2090, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4920:10:4", + "referencedDeclaration": 93, + "src": "4957:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2007, + "id": 2091, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4920:22:4", + "referencedDeclaration": 1127, + "src": "4957:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4903:39:4", + "src": "4940:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2041, + "id": 2125, "nodeType": "Block", - "src": "5209:102:4", + "src": "5246:102:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e", - "id": 2038, + "id": 2122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5230:69:4", - "subdenomination": null, + "src": "5267:69:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84888db729f17b29a04acf7a945371d331f5f1de409134c2c957ac7cd7c45cc0", "typeString": "literal_string \"Invalid address. Address check failed. Should not reach this point.\"" @@ -4151,18 +4048,18 @@ "typeString": "literal_string \"Invalid address. Address check failed. Should not reach this point.\"" } ], - "id": 2037, + "id": 2121, "name": "revert", "nodeType": "Identifier", - "overloadedDeclarations": [4235, 4236], - "referencedDeclaration": 4236, - "src": "5223:6:4", + "overloadedDeclarations": [4294967277, 4294967277], + "referencedDeclaration": 4294967277, + "src": "5260:6:4", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 2039, + "id": 2123, "isConstant": false, "isLValue": false, "isPure": false, @@ -4170,42 +4067,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5223:77:4", + "src": "5260:77:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2040, + "id": 2124, "nodeType": "ExpressionStatement", - "src": "5223:77:4" + "src": "5260:77:4" } ] }, - "id": 2042, + "id": 2126, "nodeType": "IfStatement", - "src": "4899:412:4", + "src": "4936:412:4", "trueBody": { - "id": 2036, + "id": 2120, "nodeType": "Block", - "src": "4944:259:4", + "src": "4981:259:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2012, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2009, + "id": 2093, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4958:11:4", + "referencedDeclaration": 2017, + "src": "4995:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4214,60 +4110,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2010, + "id": 2094, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4972:10:4", + "referencedDeclaration": 93, + "src": "5009:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2011, + "id": 2095, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4972:22:4", + "referencedDeclaration": 1127, + "src": "5009:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4958:36:4", + "src": "4995:36:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2013, + "id": 2097, "nodeType": "ExpressionStatement", - "src": "4958:36:4" + "src": "4995:36:4" }, { "expression": { - "argumentTypes": null, - "id": 2017, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2014, + "id": 2098, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5008:6:4", + "referencedDeclaration": 2020, + "src": "5045:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4276,60 +4168,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2015, + "id": 2099, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5017:15:4", + "referencedDeclaration": 1802, + "src": "5054:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2016, + "id": 2100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "5017:22:4", + "referencedDeclaration": 1787, + "src": "5054:22:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5008:31:4", + "src": "5045:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2018, + "id": 2102, "nodeType": "ExpressionStatement", - "src": "5008:31:4" + "src": "5045:31:4" }, { "expression": { - "argumentTypes": null, - "id": 2021, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2019, + "id": 2103, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "5053:12:4", + "referencedDeclaration": 2023, + "src": "5090:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4338,40 +4226,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "33", - "id": 2020, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5068:1:4", - "subdenomination": null, + "src": "5105:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "5053:16:4", + "src": "5090:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2022, + "id": 2106, "nodeType": "ExpressionStatement", - "src": "5053:16:4" + "src": "5090:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2026, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -4379,31 +4263,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5091:21:4", + "src": "5128:21:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2024, + "id": 2108, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5092:15:4", + "referencedDeclaration": 1802, + "src": "5129:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2025, + "id": 2109, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "5092:20:4", + "referencedDeclaration": 1789, + "src": "5129:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4415,17 +4297,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f7220746869726420706c616365", - "id": 2027, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5114:36:4", - "subdenomination": null, + "src": "5151:36:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99b3c08ddbb6f6de361039e625a6b03265a8247d25a65a0ed805729fc4d9db4d", "typeString": "literal_string \"Prize already paid for third place\"" @@ -4444,18 +4324,18 @@ "typeString": "literal_string \"Prize already paid for third place\"" } ], - "id": 2023, + "id": 2107, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5083:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5120:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2028, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -4463,48 +4343,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5083:68:4", + "src": "5120:68:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2029, + "id": 2113, "nodeType": "ExpressionStatement", - "src": "5083:68:4" + "src": "5120:68:4" }, { "expression": { - "argumentTypes": null, - "id": 2034, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2030, + "id": 2114, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5165:15:4", + "referencedDeclaration": 1802, + "src": "5202:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2032, + "id": 2116, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "5165:20:4", + "referencedDeclaration": 1789, + "src": "5202:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4513,60 +4391,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2033, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5188:4:4", - "subdenomination": null, + "src": "5225:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5165:27:4", + "src": "5202:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2035, + "id": 2119, "nodeType": "ExpressionStatement", - "src": "5165:27:4" + "src": "5202:27:4" } ] } }, - "id": 2043, + "id": 2127, "nodeType": "IfStatement", - "src": "4583:728:4", + "src": "4620:728:4", "trueBody": { - "id": 2004, + "id": 2088, "nodeType": "Block", - "src": "4629:264:4", + "src": "4666:264:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1980, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1977, + "id": 2061, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4643:11:4", + "referencedDeclaration": 2017, + "src": "4680:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4575,60 +4449,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1978, + "id": 2062, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4657:11:4", + "referencedDeclaration": 91, + "src": "4694:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1979, + "id": 2063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4657:23:4", + "referencedDeclaration": 1127, + "src": "4694:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4643:37:4", + "src": "4680:37:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1981, + "id": 2065, "nodeType": "ExpressionStatement", - "src": "4643:37:4" + "src": "4680:37:4" }, { "expression": { - "argumentTypes": null, - "id": 1985, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1982, + "id": 2066, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4694:6:4", + "referencedDeclaration": 2020, + "src": "4731:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4637,60 +4507,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1983, + "id": 2067, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4703:16:4", + "referencedDeclaration": 1800, + "src": "4740:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1984, + "id": 2068, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "4703:23:4", + "referencedDeclaration": 1787, + "src": "4740:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4694:32:4", + "src": "4731:32:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1986, + "id": 2070, "nodeType": "ExpressionStatement", - "src": "4694:32:4" + "src": "4731:32:4" }, { "expression": { - "argumentTypes": null, - "id": 1989, + "id": 2073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1987, + "id": 2071, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "4740:12:4", + "referencedDeclaration": 2023, + "src": "4777:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4699,40 +4565,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "32", - "id": 1988, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4755:1:4", - "subdenomination": null, + "src": "4792:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "4740:16:4", + "src": "4777:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1990, + "id": 2074, "nodeType": "ExpressionStatement", - "src": "4740:16:4" + "src": "4777:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1994, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -4740,31 +4602,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4778:22:4", + "src": "4815:22:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1992, + "id": 2076, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4779:16:4", + "referencedDeclaration": 1800, + "src": "4816:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1993, + "id": 2077, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4779:21:4", + "referencedDeclaration": 1789, + "src": "4816:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4776,17 +4636,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365", - "id": 1995, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4802:37:4", - "subdenomination": null, + "src": "4839:37:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f838c111053cd68b0141c2f38cba7cbf8b60f2d00a9fafe6b687584d8fe749de", "typeString": "literal_string \"Prize already paid for second place\"" @@ -4805,18 +4663,18 @@ "typeString": "literal_string \"Prize already paid for second place\"" } ], - "id": 1991, + "id": 2075, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4770:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4807:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1996, + "id": 2080, "isConstant": false, "isLValue": false, "isPure": false, @@ -4824,48 +4682,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4770:70:4", + "src": "4807:70:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 2081, "nodeType": "ExpressionStatement", - "src": "4770:70:4" + "src": "4807:70:4" }, { "expression": { - "argumentTypes": null, - "id": 2002, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1998, + "id": 2082, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4854:16:4", + "referencedDeclaration": 1800, + "src": "4891:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2000, + "id": 2084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4854:21:4", + "referencedDeclaration": 1789, + "src": "4891:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4874,60 +4730,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2001, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4878:4:4", - "subdenomination": null, + "src": "4915:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4854:28:4", + "src": "4891:28:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2003, + "id": 2087, "nodeType": "ExpressionStatement", - "src": "4854:28:4" + "src": "4891:28:4" } ] } }, - "id": 2044, + "id": 2128, "nodeType": "IfStatement", - "src": "4273:1038:4", + "src": "4310:1038:4", "trueBody": { - "id": 1972, + "id": 2056, "nodeType": "Block", - "src": "4318:259:4", + "src": "4355:259:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1948, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1945, + "id": 2029, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4332:11:4", + "referencedDeclaration": 2017, + "src": "4369:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4936,60 +4788,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1946, + "id": 2030, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4346:10:4", + "referencedDeclaration": 89, + "src": "4383:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1947, + "id": 2031, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4346:22:4", + "referencedDeclaration": 1127, + "src": "4383:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4332:36:4", + "src": "4369:36:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1949, + "id": 2033, "nodeType": "ExpressionStatement", - "src": "4332:36:4" + "src": "4369:36:4" }, { "expression": { - "argumentTypes": null, - "id": 1953, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1950, + "id": 2034, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4382:6:4", + "referencedDeclaration": 2020, + "src": "4419:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4998,60 +4846,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1951, + "id": 2035, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4391:15:4", + "referencedDeclaration": 1798, + "src": "4428:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1952, + "id": 2036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "4391:22:4", + "referencedDeclaration": 1787, + "src": "4428:22:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4382:31:4", + "src": "4419:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 2038, "nodeType": "ExpressionStatement", - "src": "4382:31:4" + "src": "4419:31:4" }, { "expression": { - "argumentTypes": null, - "id": 1957, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1955, + "id": 2039, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "4427:12:4", + "referencedDeclaration": 2023, + "src": "4464:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5060,40 +4904,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "31", - "id": 1956, + "id": 2040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4442:1:4", - "subdenomination": null, + "src": "4479:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4427:16:4", + "src": "4464:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1958, + "id": 2042, "nodeType": "ExpressionStatement", - "src": "4427:16:4" + "src": "4464:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1962, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, @@ -5101,31 +4941,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4465:21:4", + "src": "4502:21:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1960, + "id": 2044, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4466:15:4", + "referencedDeclaration": 1798, + "src": "4503:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1961, + "id": 2045, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4466:20:4", + "referencedDeclaration": 1789, + "src": "4503:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5137,17 +4975,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f7220666972737420706c616365", - "id": 1963, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4488:36:4", - "subdenomination": null, + "src": "4525:36:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99226e35aabf9d196c8ac70dd30e489093fd1dab36d6504997b708f21d1bfde9", "typeString": "literal_string \"Prize already paid for first place\"" @@ -5166,18 +5002,18 @@ "typeString": "literal_string \"Prize already paid for first place\"" } ], - "id": 1959, + "id": 2043, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4457:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4494:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1964, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, @@ -5185,48 +5021,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4457:68:4", + "src": "4494:68:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1965, + "id": 2049, "nodeType": "ExpressionStatement", - "src": "4457:68:4" + "src": "4494:68:4" }, { "expression": { - "argumentTypes": null, - "id": 1970, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1966, + "id": 2050, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4539:15:4", + "referencedDeclaration": 1798, + "src": "4576:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1968, + "id": 2052, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4539:20:4", + "referencedDeclaration": 1789, + "src": "4576:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5235,116 +5069,120 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1969, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4562:4:4", - "subdenomination": null, + "src": "4599:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4539:27:4", + "src": "4576:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1971, + "id": 2055, "nodeType": "ExpressionStatement", - "src": "4539:27:4" + "src": "4576:27:4" } ] } }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2046, + "id": 2130, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "5335:11:4", + "referencedDeclaration": 2017, + "src": "5372:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, - "id": 2047, + "id": 2131, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5348:6:4", + "referencedDeclaration": 2020, + "src": "5385:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2048, + "id": 2132, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "5356:12:4", + "referencedDeclaration": 2023, + "src": "5393:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2049, + "id": 2133, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "5370:3:4", + "referencedDeclaration": 4294967281, + "src": "5407:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2050, + "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5370:10:4", + "src": "5407:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 2051, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "5382:3:4", + "expression": { + "id": 2135, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "5419:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5419:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5374,18 +5212,18 @@ "typeString": "uint256" } ], - "id": 2045, + "id": 2129, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5326:8:4", + "referencedDeclaration": 1830, + "src": "5363:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint8,address,uint256)" } }, - "id": 2052, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -5393,138 +5231,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5326:60:4", + "src": "5363:72:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2053, + "id": 2138, "nodeType": "EmitStatement", - "src": "5321:65:4" + "src": "5358:77:4" }, { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "arguments": [ - { - "argumentTypes": null, - "id": 2059, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5474:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": [], "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "teamAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "5447:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2054, - "name": "IPayable", + "arguments": [ + { + "id": 2140, + "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "5438:8:4", + "referencedDeclaration": 2017, + "src": "5496:11:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPayable_$2869_$", - "typeString": "type(contract IPayable)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5438:21:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2139, + "name": "IPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2987, + "src": "5487:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPayable_$2869", - "typeString": "contract IPayable" + "typeIdentifier": "t_type$_t_contract$_IPayable_$2987_$", + "typeString": "type(contract IPayable)" } }, - "id": 2057, + "id": 2141, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2868, - "src": "5438:29:4", + "names": [], + "nodeType": "FunctionCall", + "src": "5487:21:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" + "typeIdentifier": "t_contract$_IPayable_$2987", + "typeString": "contract IPayable" } }, - "id": 2058, + "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "value", + "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5438:35:4", + "referencedDeclaration": 2986, + "src": "5487:29:4", "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$__$returns$__$value_$", - "typeString": "function (uint256) pure returns (function () payable external)" + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" } }, - "id": 2060, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5438:43:4", + "names": ["value"], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2020, + "src": "5524:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5487:44:4", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 2061, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -5532,141 +5346,141 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5438:45:4", + "src": "5487:46:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2062, + "id": 2146, "nodeType": "ExpressionStatement", - "src": "5438:45:4" + "src": "5487:46:4" } ] }, - "documentation": "@notice Allows withdrawing prizes to winners.\n@dev Winners must implement IPayable to receive funds.", - "id": 2064, + "documentation": { + "id": 2001, + "nodeType": "StructuredDocumentation", + "src": "3884:128:4", + "text": "@notice Allows withdrawing prizes to winners.\n@dev Winners must implement IPayable to receive funds." + }, + "functionSelector": "11dc45c9", + "id": 2148, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1922, + "id": 2006, "modifierName": { - "argumentTypes": null, - "id": 1921, + "id": 2005, "name": "whenRankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "4051:17:4", + "referencedDeclaration": 146, + "src": "4088:17:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4051:17:4" + "src": "4088:17:4" }, { - "arguments": null, - "id": 1924, + "id": 2008, "modifierName": { - "argumentTypes": null, - "id": 1923, + "id": 2007, "name": "whenPrizeAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1772, - "src": "4077:18:4", + "referencedDeclaration": 1849, + "src": "4114:18:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4077:18:4" + "src": "4114:18:4" }, { "arguments": [ { - "argumentTypes": null, - "id": 1926, + "id": 2010, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4121:13:4", + "referencedDeclaration": 2003, + "src": "4158:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1927, + "id": 2011, "modifierName": { - "argumentTypes": null, - "id": 1925, + "id": 2009, "name": "onlyValidAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "4104:16:4", + "referencedDeclaration": 1888, + "src": "4141:16:4", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4104:31:4" + "src": "4141:31:4" }, { "arguments": [ { - "argumentTypes": null, - "id": 1929, + "id": 2013, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4162:13:4", + "referencedDeclaration": 2003, + "src": "4199:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1930, + "id": 2014, "modifierName": { - "argumentTypes": null, - "id": 1928, + "id": 2012, "name": "onlyWinnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "4144:17:4", + "referencedDeclaration": 1862, + "src": "4181:17:4", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4144:32:4" + "src": "4181:32:4" } ], "name": "withdrawPrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1920, + "id": 2004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1919, + "id": 2003, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "4003:21:4", + "scope": 2148, + "src": "4040:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5674,85 +5488,79 @@ "typeString": "address" }, "typeName": { - "id": 1918, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4003:7:4", + "src": "4040:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "4002:23:4" + "src": "4039:23:4" }, "returnParameters": { - "id": 1931, + "id": 2015, "nodeType": "ParameterList", "parameters": [], - "src": "4181:0:4" + "src": "4218:0:4" }, - "scope": 2089, - "src": "3980:1510:4", + "scope": 2174, + "src": "4017:1523:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2087, + "id": 2172, "nodeType": "Block", - "src": "5650:206:4", + "src": "5700:206:4", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2084, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2079, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2074, + "id": 2159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2071, + "id": 2156, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5681:13:4", + "referencedDeclaration": 2151, + "src": "5731:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5761,35 +5569,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2072, + "id": 2157, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5698:10:4", + "referencedDeclaration": 89, + "src": "5748:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2073, + "id": 2158, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5698:22:4", + "referencedDeclaration": 1127, + "src": "5748:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5681:39:4", + "src": "5731:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5798,24 +5604,22 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2078, + "id": 2163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2075, + "id": 2160, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5740:13:4", + "referencedDeclaration": 2151, + "src": "5790:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5824,41 +5628,39 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2076, + "id": 2161, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5757:11:4", + "referencedDeclaration": 91, + "src": "5807:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2077, + "id": 2162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5757:23:4", + "referencedDeclaration": 1127, + "src": "5807:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5740:40:4", + "src": "5790:40:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5681:99:4", + "src": "5731:99:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5867,24 +5669,22 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2083, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2080, + "id": 2165, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5800:13:4", + "referencedDeclaration": 2151, + "src": "5850:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5893,85 +5693,89 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2081, + "id": 2166, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5817:10:4", + "referencedDeclaration": 93, + "src": "5867:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2082, + "id": 2167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5817:22:4", + "referencedDeclaration": 1127, + "src": "5867:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5800:39:4", + "src": "5850:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5681:158:4", + "src": "5731:158:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 2085, + "id": 2170, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5667:182:4", + "src": "5717:182:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2070, - "id": 2086, + "functionReturnParameters": 2155, + "id": 2171, "nodeType": "Return", - "src": "5660:189:4" + "src": "5710:189:4" } ] }, - "documentation": "Checks if the specifier address is one of the winners", - "id": 2088, + "documentation": { + "id": 2149, + "nodeType": "StructuredDocumentation", + "src": "5546:72:4", + "text": "Checks if the specifier address is one of the winners" + }, + "id": 2173, "implemented": true, "kind": "function", "modifiers": [], "name": "isWinnerAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2067, + "id": 2152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2066, + "id": 2151, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 2088, - "src": "5599:21:4", + "scope": 2173, + "src": "5649:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5979,33 +5783,33 @@ "typeString": "address" }, "typeName": { - "id": 2065, + "id": 2150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5599:7:4", + "src": "5649:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "5598:23:4" + "src": "5648:23:4" }, "returnParameters": { - "id": 2070, + "id": 2155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2069, + "id": 2154, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2088, - "src": "5644:4:4", + "scope": 2173, + "src": "5694:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6013,150 +5817,160 @@ "typeString": "bool" }, "typeName": { - "id": 2068, + "id": 2153, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5644:4:4", + "src": "5694:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "5643:6:4" + "src": "5693:6:4" }, - "scope": 2089, - "src": "5574:282:4", + "scope": 2174, + "src": "5624:282:4", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "private" } ], - "scope": 2090, - "src": "597:5261:4" + "scope": 2175, + "src": "637:5271:4" } ], - "src": "0:5859:4" + "src": "40:5869:4" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "exportedSymbols": { - "Hackathon": [2089] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2090, + "id": 2175, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 1700, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 1774, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "40:31:4" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1701, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 1775, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 4216, - "src": "25:59:4", + "scope": 2175, + "sourceUnit": 3815, + "src": "73:51:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol", "file": "./ContestBracketRegistry.sol", - "id": 1702, + "id": 1776, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 649, - "src": "86:38:4", + "scope": 2175, + "sourceUnit": 675, + "src": "126:38:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "file": "../payment/Payable.sol", - "id": 1703, + "id": 1777, "nodeType": "ImportDirective", - "scope": 2090, - "sourceUnit": 2904, - "src": "125:32:4", + "scope": 2175, + "sourceUnit": 3027, + "src": "165:32:4", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 1704, + "id": 1779, "name": "Payable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2903, - "src": "619:7:4", + "referencedDeclaration": 3026, + "src": "659:7:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Payable_$2903", + "typeIdentifier": "t_contract$_Payable_$3026", "typeString": "contract Payable" } }, - "id": 1705, + "id": 1780, "nodeType": "InheritanceSpecifier", - "src": "619:7:4" + "src": "659:7:4" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 1706, + "id": 1781, "name": "ContestBracketRegistry", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 648, - "src": "628:22:4", + "referencedDeclaration": 674, + "src": "668:22:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ContestBracketRegistry_$648", + "typeIdentifier": "t_contract$_ContestBracketRegistry_$674", "typeString": "contract ContestBracketRegistry" } }, - "id": 1707, + "id": 1782, "nodeType": "InheritanceSpecifier", - "src": "628:22:4" + "src": "668:22:4" } ], - "contractDependencies": [648, 1698, 2869, 2903, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 2987, 3026, 3326, 3416, 3532], "contractKind": "contract", - "documentation": "@notice Represents a hackathon contest, where organizers can control the\nstages/phases of the contest (such as registration, submission, evaluation and results)\nas well as pay prizes to the winners.\n@dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\nThe ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.", + "documentation": { + "id": 1778, + "nodeType": "StructuredDocumentation", + "src": "199:437:4", + "text": "@notice Represents a hackathon contest, where organizers can control the\nstages/phases of the contest (such as registration, submission, evaluation and results)\nas well as pay prizes to the winners.\n@dev For the payment functionality, the \"withdraw pattern\" is being implemented for this contract.\nThe ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}." + }, "fullyImplemented": true, - "id": 2089, - "linearizedBaseContracts": [2089, 648, 3195, 3287, 3401, 1698, 2903, 2869], + "id": 2174, + "linearizedBaseContracts": [2174, 674, 3326, 3416, 3532, 1772, 3026, 2987], "name": "Hackathon", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1710, + "id": 1785, "libraryName": { - "contractScope": null, - "id": 1708, + "id": 1783, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "663:8:4", + "referencedDeclaration": 3814, + "src": "703:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "657:27:4", + "src": "697:27:4", "typeName": { - "id": 1709, + "id": 1784, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "676:7:4", + "src": "716:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6165,15 +5979,16 @@ }, { "canonicalName": "Hackathon.Prize", - "id": 1715, + "id": 1790, "members": [ { "constant": false, - "id": 1712, + "id": 1787, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "769:14:4", + "scope": 1790, + "src": "809:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6181,25 +5996,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1711, + "id": 1786, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "769:7:4", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1714, + "id": 1789, + "mutability": "mutable", "name": "paid", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "793:9:4", + "scope": 1790, + "src": "833:9:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6207,32 +6022,33 @@ "typeString": "bool" }, "typeName": { - "id": 1713, + "id": 1788, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "793:4:4", + "src": "833:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], "name": "Prize", "nodeType": "StructDefinition", - "scope": 2089, - "src": "746:63:4", + "scope": 2174, + "src": "786:63:4", "visibility": "public" }, { "constant": false, - "id": 1717, + "functionSelector": "af640d0f", + "id": 1792, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "815:17:4", + "scope": 2174, + "src": "855:17:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6240,25 +6056,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1716, + "id": 1791, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "815:7:4", + "src": "855:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1719, + "functionSelector": "06fdde03", + "id": 1794, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "838:19:4", + "scope": 2174, + "src": "878:19:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6266,25 +6083,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 1718, + "id": 1793, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "838:7:4", + "src": "878:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1721, + "functionSelector": "7284e416", + "id": 1796, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "863:26:4", + "scope": 2174, + "src": "903:26:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6292,109 +6110,106 @@ "typeString": "bytes32" }, "typeName": { - "id": 1720, + "id": 1795, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "863:7:4", + "src": "903:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "public" }, { "constant": false, - "id": 1723, + "id": 1798, + "mutability": "mutable", "name": "firstPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "895:30:4", + "scope": 2174, + "src": "935:30:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1722, + "id": 1797, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "895:5:4", + "referencedDeclaration": 1790, + "src": "935:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1725, + "id": 1800, + "mutability": "mutable", "name": "secondPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "931:31:4", + "scope": 2174, + "src": "971:31:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1724, + "id": 1799, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "931:5:4", + "referencedDeclaration": 1790, + "src": "971:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1727, + "id": 1802, + "mutability": "mutable", "name": "thirdPlacePrize", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "968:30:4", + "scope": 2174, + "src": "1008:30:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize" }, "typeName": { - "contractScope": null, - "id": 1726, + "id": 1801, "name": "Prize", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1715, - "src": "968:5:4", + "referencedDeclaration": 1790, + "src": "1008:5:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage_ptr", + "typeIdentifier": "t_struct$_Prize_$1790_storage_ptr", "typeString": "struct Hackathon.Prize" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1729, + "id": 1804, + "mutability": "mutable", "name": "prizesAllocated", "nodeType": "VariableDeclaration", - "scope": 2089, - "src": "1004:29:4", + "scope": 2174, + "src": "1044:29:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6402,36 +6217,41 @@ "typeString": "bool" }, "typeName": { - "id": 1728, + "id": 1803, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1004:4:4", + "src": "1044:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" }, { "anonymous": false, - "documentation": "@dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw.", - "id": 1741, + "documentation": { + "id": 1805, + "nodeType": "StructuredDocumentation", + "src": "1080:135:4", + "text": "@dev emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw." + }, + "id": 1817, "name": "PrizeAllocation", "nodeType": "EventDefinition", "parameters": { - "id": 1740, + "id": 1816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1731, + "id": 1807, "indexed": false, + "mutability": "mutable", "name": "firstPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1211:23:4", + "scope": 1817, + "src": "1251:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6439,26 +6259,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1730, + "id": 1806, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1211:7:4", + "src": "1251:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1733, + "id": 1809, "indexed": false, + "mutability": "mutable", "name": "secondPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1244:24:4", + "scope": 1817, + "src": "1284:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6466,26 +6286,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 1808, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1244:7:4", + "src": "1284:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1735, + "id": 1811, "indexed": false, + "mutability": "mutable", "name": "thirdPlacePrize", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1278:23:4", + "scope": 1817, + "src": "1318:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6493,26 +6313,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1734, + "id": 1810, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1278:7:4", + "src": "1318:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1737, + "id": 1813, "indexed": true, + "mutability": "mutable", "name": "organizer", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1311:25:4", + "scope": 1817, + "src": "1351:25:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6520,27 +6340,27 @@ "typeString": "address" }, "typeName": { - "id": 1736, + "id": 1812, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1311:7:4", + "src": "1351:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1739, + "id": 1815, "indexed": false, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "1346:16:4", + "scope": 1817, + "src": "1386:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6548,41 +6368,46 @@ "typeString": "uint256" }, "typeName": { - "id": 1738, + "id": 1814, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1346:7:4", + "src": "1386:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1201:167:4" + "src": "1241:167:4" }, - "src": "1180:189:4" + "src": "1220:189:4" }, { "anonymous": false, - "documentation": "@dev emitted when a prize is withdraw by a winner team.", - "id": 1753, + "documentation": { + "id": 1818, + "nodeType": "StructuredDocumentation", + "src": "1415:59:4", + "text": "@dev emitted when a prize is withdraw by a winner team." + }, + "id": 1830, "name": "Withdraw", "nodeType": "EventDefinition", "parameters": { - "id": 1752, + "id": 1829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1743, + "id": 1820, "indexed": true, + "mutability": "mutable", "name": "to", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1454:18:4", + "scope": 1830, + "src": "1494:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6590,27 +6415,27 @@ "typeString": "address" }, "typeName": { - "id": 1742, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1454:7:4", + "src": "1494:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1745, + "id": 1822, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1474:14:4", + "scope": 1830, + "src": "1514:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6618,26 +6443,26 @@ "typeString": "uint256" }, "typeName": { - "id": 1744, + "id": 1821, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1474:7:4", + "src": "1514:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1747, + "id": 1824, "indexed": false, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1490:18:4", + "scope": 1830, + "src": "1530:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6645,26 +6470,26 @@ "typeString": "uint8" }, "typeName": { - "id": 1746, + "id": 1823, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1490:5:4", + "src": "1530:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1749, + "id": 1826, "indexed": true, + "mutability": "mutable", "name": "requester", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1510:25:4", + "scope": 1830, + "src": "1550:25:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6672,27 +6497,27 @@ "typeString": "address" }, "typeName": { - "id": 1748, + "id": 1825, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1510:7:4", + "src": "1550:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1751, + "id": 1828, "indexed": false, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 1753, - "src": "1537:16:4", + "scope": 1830, + "src": "1577:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6700,36 +6525,33 @@ "typeString": "uint256" }, "typeName": { - "id": 1750, + "id": 1827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1537:7:4", + "src": "1577:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1453:101:4" + "src": "1493:101:4" }, - "src": "1439:116:4" + "src": "1479:116:4" }, { "body": { - "id": 1762, + "id": 1839, "nodeType": "Block", - "src": "1594:81:4", + "src": "1634:81:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1757, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -6737,15 +6559,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1612:16:4", + "src": "1652:16:4", "subExpression": { - "argumentTypes": null, - "id": 1756, + "id": 1833, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1613:15:4", + "referencedDeclaration": 1804, + "src": "1653:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6757,17 +6578,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a657320616c726561647920616c6c6f6361746564", - "id": 1758, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1630:26:4", - "subdenomination": null, + "src": "1670:26:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bf96c3e55398b1e61a28ff861bf1a69cf40f8effec6e352b73c139e92b58147e", "typeString": "literal_string \"Prizes already allocated\"" @@ -6786,18 +6605,18 @@ "typeString": "literal_string \"Prizes already allocated\"" } ], - "id": 1755, + "id": 1832, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1604:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1644:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1759, + "id": 1836, "isConstant": false, "isLValue": false, "isPure": false, @@ -6805,71 +6624,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:53:4", + "src": "1644:53:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1760, + "id": 1837, "nodeType": "ExpressionStatement", - "src": "1604:53:4" + "src": "1644:53:4" }, { - "id": 1761, + "id": 1838, "nodeType": "PlaceholderStatement", - "src": "1667:1:4" + "src": "1707:1:4" } ] }, - "documentation": null, - "id": 1763, + "id": 1840, "name": "whenPrizeNotAllocated", "nodeType": "ModifierDefinition", "parameters": { - "id": 1754, + "id": 1831, "nodeType": "ParameterList", "parameters": [], - "src": "1591:2:4" + "src": "1631:2:4" }, - "src": "1561:114:4", + "src": "1601:114:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1771, + "id": 1848, "nodeType": "Block", - "src": "1711:80:4", + "src": "1751:80:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1766, + "id": 1843, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1729:15:4", + "referencedDeclaration": 1804, + "src": "1769:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "5072697a6573206e6f7420616c6c6f636174656420796574", - "id": 1767, + "id": 1844, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1746:26:4", - "subdenomination": null, + "src": "1786:26:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fc7e4d62b3e9c65907c4925855d5646179a53c0fb400b0698f5dbbb3d0773704", "typeString": "literal_string \"Prizes not allocated yet\"" @@ -6888,18 +6704,18 @@ "typeString": "literal_string \"Prizes not allocated yet\"" } ], - "id": 1765, + "id": 1842, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1721:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1761:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1768, + "id": 1845, "isConstant": false, "isLValue": false, "isPure": false, @@ -6907,57 +6723,55 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1721:52:4", + "src": "1761:52:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1769, + "id": 1846, "nodeType": "ExpressionStatement", - "src": "1721:52:4" + "src": "1761:52:4" }, { - "id": 1770, + "id": 1847, "nodeType": "PlaceholderStatement", - "src": "1783:1:4" + "src": "1823:1:4" } ] }, - "documentation": null, - "id": 1772, + "id": 1849, "name": "whenPrizeAllocated", "nodeType": "ModifierDefinition", "parameters": { - "id": 1764, + "id": 1841, "nodeType": "ParameterList", "parameters": [], - "src": "1708:2:4" + "src": "1748:2:4" }, - "src": "1681:110:4", + "src": "1721:110:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1784, + "id": 1861, "nodeType": "Block", - "src": "1847:102:4", + "src": "1887:102:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1778, + "id": 1855, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1774, - "src": "1881:13:4", + "referencedDeclaration": 1851, + "src": "1921:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6971,18 +6785,18 @@ "typeString": "address" } ], - "id": 1777, + "id": 1854, "name": "isWinnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "1865:15:4", + "referencedDeclaration": 2173, + "src": "1905:15:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 1779, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -6990,24 +6804,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1865:30:4", + "src": "1905:30:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4163636f756e742061646472657373206973206e6f7420612077696e6e6572", - "id": 1780, + "id": 1857, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1897:33:4", - "subdenomination": null, + "src": "1937:33:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_97b31c34870bc516686cd656eda50f3a0b810bd21d94f28d52affe849bf23342", "typeString": "literal_string \"Account address is not a winner\"" @@ -7026,18 +6839,18 @@ "typeString": "literal_string \"Account address is not a winner\"" } ], - "id": 1776, + "id": 1853, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1857:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1897:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1781, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, @@ -7045,38 +6858,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1857:74:4", + "src": "1897:74:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1782, + "id": 1859, "nodeType": "ExpressionStatement", - "src": "1857:74:4" + "src": "1897:74:4" }, { - "id": 1783, + "id": 1860, "nodeType": "PlaceholderStatement", - "src": "1941:1:4" + "src": "1981:1:4" } ] }, - "documentation": null, - "id": 1785, + "id": 1862, "name": "onlyWinnerAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 1775, + "id": 1852, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1774, + "id": 1851, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 1785, - "src": "1824:21:4", + "scope": 1862, + "src": "1864:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7084,54 +6898,51 @@ "typeString": "address" }, "typeName": { - "id": 1773, + "id": 1850, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1824:7:4", + "src": "1864:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1823:23:4" + "src": "1863:23:4" }, - "src": "1797:152:4", + "src": "1837:152:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1808, + "id": 1887, "nodeType": "Block", - "src": "1998:179:4", + "src": "2038:179:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1794, + "id": 1872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1790, + "id": 1867, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "2016:7:4", + "referencedDeclaration": 1864, + "src": "2056:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7140,20 +6951,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 1792, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2035:1:4", - "subdenomination": null, + "src": "2075:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7168,20 +6976,26 @@ "typeString": "int_const 0" } ], - "id": 1791, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2027:7:4", + "src": "2067:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1868, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2067:7:4", + "typeDescriptions": {} + } }, - "id": 1793, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": true, @@ -7189,30 +7003,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2027:10:4", + "src": "2067:10:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "2016:21:4", + "src": "2056:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 1795, + "id": 1873, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2039:22:4", - "subdenomination": null, + "src": "2079:22:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -7231,18 +7044,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 1789, + "id": 1866, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2008:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2048:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1796, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -7250,39 +7063,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:54:4", + "src": "2048:54:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1797, + "id": 1875, "nodeType": "ExpressionStatement", - "src": "2008:54:4" + "src": "2048:54:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1803, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1799, + "id": 1877, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "2080:7:4", + "referencedDeclaration": 1864, + "src": "2120:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7291,18 +7102,16 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1801, + "id": 1880, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4270, - "src": "2099:4:4", + "referencedDeclaration": 4294967268, + "src": "2139:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -7310,24 +7119,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 1800, + "id": 1879, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2091:7:4", + "src": "2131:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1878, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2131:7:4", + "typeDescriptions": {} + } }, - "id": 1802, + "id": 1881, "isConstant": false, "isLValue": false, "isPure": false, @@ -7335,30 +7150,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2091:13:4", + "src": "2131:13:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2080:24:4", + "src": "2120:24:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373", - "id": 1804, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2106:52:4", - "subdenomination": null, + "src": "2146:52:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83cda136770e17f6f31be761df65fed1b68fd4b5f98b2d3b5153d11abf7a1099", "typeString": "literal_string \"Address cannot be equal to contract (this) address\"" @@ -7377,18 +7191,18 @@ "typeString": "literal_string \"Address cannot be equal to contract (this) address\"" } ], - "id": 1798, + "id": 1876, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2072:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2112:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1805, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": false, @@ -7396,38 +7210,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2072:87:4", + "src": "2112:87:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1806, + "id": 1885, "nodeType": "ExpressionStatement", - "src": "2072:87:4" + "src": "2112:87:4" }, { - "id": 1807, + "id": 1886, "nodeType": "PlaceholderStatement", - "src": "2169:1:4" + "src": "2209:1:4" } ] }, - "documentation": null, - "id": 1809, + "id": 1888, "name": "onlyValidAddress", "nodeType": "ModifierDefinition", "parameters": { - "id": 1788, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 1864, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 1809, - "src": "1981:15:4", + "scope": 1888, + "src": "2021:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7435,74 +7250,68 @@ "typeString": "address" }, "typeName": { - "id": 1786, + "id": 1863, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1981:7:4", + "src": "2021:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1980:17:4" + "src": "2020:17:4" }, - "src": "1955:222:4", + "src": "1995:222:4", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 1848, + "id": 1928, "nodeType": "Block", - "src": "2670:164:4", + "src": "2695:164:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 1828, + "id": 1908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 1824, + "id": 1904, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "2688:5:4", + "referencedDeclaration": 1893, + "src": "2713:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1826, + "id": 1906, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1825, + "id": 1905, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2694:1:4", - "subdenomination": null, + "src": "2719:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -7514,7 +7323,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2688:8:4", + "src": "2713:8:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -7523,41 +7332,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 1827, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2700:1:4", - "subdenomination": null, + "src": "2725:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2688:13:4", + "src": "2713:13:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964206e616d65", - "id": 1829, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2703:14:4", - "subdenomination": null, + "src": "2728:14:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_19bb2f3dcef9fe4d075b4ea12031255ac5db5257bcefc4252f155c870adc52ea", "typeString": "literal_string \"Invalid name\"" @@ -7576,18 +7381,18 @@ "typeString": "literal_string \"Invalid name\"" } ], - "id": 1823, + "id": 1903, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2680:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2705:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1830, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, @@ -7595,32 +7400,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2680:38:4", + "src": "2705:38:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1831, + "id": 1911, "nodeType": "ExpressionStatement", - "src": "2680:38:4" + "src": "2705:38:4" }, { "expression": { - "argumentTypes": null, - "id": 1834, + "id": 1914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1832, + "id": 1912, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "2728:2:4", + "referencedDeclaration": 1792, + "src": "2753:2:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7629,44 +7433,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1833, + "id": 1913, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "2733:3:4", + "referencedDeclaration": 1891, + "src": "2758:3:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2728:8:4", + "src": "2753:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1835, + "id": 1915, "nodeType": "ExpressionStatement", - "src": "2728:8:4" + "src": "2753:8:4" }, { "expression": { - "argumentTypes": null, - "id": 1838, + "id": 1918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1836, + "id": 1916, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1719, - "src": "2746:4:4", + "referencedDeclaration": 1794, + "src": "2771:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7675,44 +7476,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1837, + "id": 1917, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "2753:5:4", + "referencedDeclaration": 1893, + "src": "2778:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2746:12:4", + "src": "2771:12:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1839, + "id": 1919, "nodeType": "ExpressionStatement", - "src": "2746:12:4" + "src": "2771:12:4" }, { "expression": { - "argumentTypes": null, - "id": 1842, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1840, + "id": 1920, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1721, - "src": "2768:11:4", + "referencedDeclaration": 1796, + "src": "2793:11:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7721,44 +7519,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 1841, + "id": 1921, "name": "_description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "2782:12:4", + "referencedDeclaration": 1895, + "src": "2807:12:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2768:26:4", + "src": "2793:26:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1843, + "id": 1923, "nodeType": "ExpressionStatement", - "src": "2768:26:4" + "src": "2793:26:4" }, { "expression": { - "argumentTypes": null, - "id": 1846, + "id": 1926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1844, + "id": 1924, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "2804:15:4", + "referencedDeclaration": 1804, + "src": "2829:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7767,87 +7562,89 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1845, + "id": 1925, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2822:5:4", - "subdenomination": null, + "src": "2847:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2804:23:4", + "src": "2829:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1847, + "id": 1927, "nodeType": "ExpressionStatement", - "src": "2804:23:4" + "src": "2829:23:4" } ] }, - "documentation": "@notice Creates a new Hackathon contract with a specific _id, _name, desciption,\nand a specific organizer.\n@param _id {uint256} Hackathon's unique indentifier\n@param _name {bytes32} Hackathon's name. Required.\n@param _description {bytes32} Hackathon's description. Optional.", - "id": 1849, + "documentation": { + "id": 1889, + "nodeType": "StructuredDocumentation", + "src": "2223:326:4", + "text": "@notice Creates a new Hackathon contract with a specific _id, _name, desciption,\nand a specific organizer.\n@param _id {uint256} Hackathon's unique indentifier\n@param _name {bytes32} Hackathon's name. Required.\n@param _description {bytes32} Hackathon's description. Optional." + }, + "id": 1929, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 1820, + "id": 1900, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "2648:16:4", + "referencedDeclaration": 1897, + "src": "2673:16:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1821, + "id": 1901, "modifierName": { - "argumentTypes": null, - "id": 1819, + "id": 1899, "name": "ContestBracketRegistry", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 648, - "src": "2625:22:4", + "referencedDeclaration": 674, + "src": "2650:22:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$648_$", + "typeIdentifier": "t_type$_t_contract$_ContestBracketRegistry_$674_$", "typeString": "type(contract ContestBracketRegistry)" } }, "nodeType": "ModifierInvocation", - "src": "2625:40:4" + "src": "2650:40:4" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1818, + "id": 1898, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1811, + "id": 1891, + "mutability": "mutable", "name": "_id", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2526:11:4", + "scope": 1929, + "src": "2566:11:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7855,25 +7652,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1810, + "id": 1890, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2526:7:4", + "src": "2566:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1813, + "id": 1893, + "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2539:13:4", + "scope": 1929, + "src": "2579:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7881,25 +7678,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1812, + "id": 1892, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2539:7:4", + "src": "2579:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1815, + "id": 1895, + "mutability": "mutable", "name": "_description", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2554:20:4", + "scope": 1929, + "src": "2594:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7907,25 +7704,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 1814, + "id": 1894, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2554:7:4", + "src": "2594:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1817, + "id": 1897, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 1849, - "src": "2576:24:4", + "scope": 1929, + "src": "2616:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7933,50 +7730,50 @@ "typeString": "address" }, "typeName": { - "id": 1816, + "id": 1896, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2576:7:4", + "src": "2616:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2525:76:4" + "src": "2565:76:4" }, "returnParameters": { - "id": 1822, + "id": 1902, "nodeType": "ParameterList", "parameters": [], - "src": "2670:0:4" + "src": "2695:0:4" }, - "scope": 2089, - "src": "2514:320:4", + "scope": 2174, + "src": "2554:305:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 1916, + "id": 1999, "nodeType": "Block", - "src": "3378:463:4", + "src": "3403:475:4", "statements": [ { - "assignments": [1863], + "assignments": [1944], "declarations": [ { "constant": false, - "id": 1863, + "id": 1944, + "mutability": "mutable", "name": "totalPrizes", "nodeType": "VariableDeclaration", - "scope": 1916, - "src": "3388:19:4", + "scope": 1999, + "src": "3413:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7984,31 +7781,28 @@ "typeString": "uint256" }, "typeName": { - "id": 1862, + "id": 1943, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3388:7:4", + "src": "3413:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1871, + "id": 1952, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1869, + "id": 1950, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3442:10:4", + "referencedDeclaration": 1936, + "src": "3467:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8023,16 +7817,14 @@ } ], "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1866, + "id": 1947, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3425:11:4", + "referencedDeclaration": 1934, + "src": "3450:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8047,33 +7839,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 1864, + "id": 1945, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3410:10:4", + "referencedDeclaration": 1932, + "src": "3435:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1865, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3410:14:4", + "referencedDeclaration": 3647, + "src": "3435:14:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1867, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -8081,27 +7872,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3410:27:4", + "src": "3435:27:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1868, + "id": 1949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4109, - "src": "3410:31:4", + "referencedDeclaration": 3647, + "src": "3435:31:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 1870, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -8109,38 +7901,36 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3410:43:4", + "src": "3435:43:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3388:65:4" + "src": "3413:65:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1878, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1873, + "id": 1954, "name": "totalPrizes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1863, - "src": "3471:11:4", + "referencedDeclaration": 1944, + "src": "3496:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8149,20 +7939,17 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1875, + "id": 1957, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4270, - "src": "3494:4:4", + "referencedDeclaration": 4294967268, + "src": "3519:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -8170,24 +7957,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 1874, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3486:7:4", + "src": "3511:7:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 1955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3511:7:4", + "typeDescriptions": {} + } }, - "id": 1876, + "id": 1958, "isConstant": false, "isLValue": false, "isPure": false, @@ -8195,44 +7988,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3486:13:4", + "src": "3511:13:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1877, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3486:21:4", + "src": "3511:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3471:36:4", + "src": "3496:36:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e7472616374", - "id": 1879, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3509:50:4", - "subdenomination": null, + "src": "3534:50:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a246f0e358a4bd74091742f06fd7de38f1bdc745c64b8ecee65bb0cdd6477163", "typeString": "literal_string \"Not enough funds available in hackathon contract\"" @@ -8251,18 +8042,18 @@ "typeString": "literal_string \"Not enough funds available in hackathon contract\"" } ], - "id": 1872, + "id": 1953, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3463:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3488:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1880, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": false, @@ -8270,67 +8061,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3463:97:4", + "src": "3488:97:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1881, + "id": 1963, "nodeType": "ExpressionStatement", - "src": "3463:97:4" + "src": "3488:97:4" }, { "expression": { - "argumentTypes": null, - "id": 1887, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1882, + "id": 1964, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "3570:15:4", + "referencedDeclaration": 1798, + "src": "3595:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1884, + "id": 1966, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3594:10:4", + "referencedDeclaration": 1932, + "src": "3619:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1885, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3606:5:4", - "subdenomination": null, + "src": "3631:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8349,18 +8135,18 @@ "typeString": "bool" } ], - "id": 1883, + "id": 1965, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3588:5:4", + "referencedDeclaration": 1790, + "src": "3613:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1886, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": false, @@ -8368,73 +8154,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3588:24:4", + "src": "3613:24:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3570:42:4", + "src": "3595:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1888, + "id": 1970, "nodeType": "ExpressionStatement", - "src": "3570:42:4" + "src": "3595:42:4" }, { "expression": { - "argumentTypes": null, - "id": 1894, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1889, + "id": 1971, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "3622:16:4", + "referencedDeclaration": 1800, + "src": "3647:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1891, + "id": 1973, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3647:11:4", + "referencedDeclaration": 1934, + "src": "3672:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1892, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3660:5:4", - "subdenomination": null, + "src": "3685:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8453,18 +8234,18 @@ "typeString": "bool" } ], - "id": 1890, + "id": 1972, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3641:5:4", + "referencedDeclaration": 1790, + "src": "3666:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1893, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": false, @@ -8472,73 +8253,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3641:25:4", + "src": "3666:25:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3622:44:4", + "src": "3647:44:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1895, + "id": 1977, "nodeType": "ExpressionStatement", - "src": "3622:44:4" + "src": "3647:44:4" }, { "expression": { - "argumentTypes": null, - "id": 1901, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1896, + "id": 1978, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "3676:15:4", + "referencedDeclaration": 1802, + "src": "3701:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1898, + "id": 1980, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3700:10:4", + "referencedDeclaration": 1936, + "src": "3725:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 1899, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3712:5:4", - "subdenomination": null, + "src": "3737:5:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8557,18 +8333,18 @@ "typeString": "bool" } ], - "id": 1897, + "id": 1979, "name": "Prize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1715, - "src": "3694:5:4", + "referencedDeclaration": 1790, + "src": "3719:5:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Prize_$1715_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Prize_$1790_storage_ptr_$", "typeString": "type(struct Hackathon.Prize storage pointer)" } }, - "id": 1900, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, @@ -8576,38 +8352,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3694:24:4", + "src": "3719:24:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_memory", + "typeIdentifier": "t_struct$_Prize_$1790_memory_ptr", "typeString": "struct Hackathon.Prize memory" } }, - "src": "3676:42:4", + "src": "3701:42:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1902, + "id": 1984, "nodeType": "ExpressionStatement", - "src": "3676:42:4" + "src": "3701:42:4" }, { "expression": { - "argumentTypes": null, - "id": 1905, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1903, + "id": 1985, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "3728:15:4", + "referencedDeclaration": 1804, + "src": "3753:15:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8616,113 +8391,117 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1904, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3746:4:4", - "subdenomination": null, + "src": "3771:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "3728:22:4", + "src": "3753:22:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1906, + "id": 1988, "nodeType": "ExpressionStatement", - "src": "3728:22:4" + "src": "3753:22:4" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1908, + "id": 1990, "name": "firstPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1851, - "src": "3781:10:4", + "referencedDeclaration": 1932, + "src": "3806:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1909, + "id": 1991, "name": "secondPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1853, - "src": "3793:11:4", + "referencedDeclaration": 1934, + "src": "3818:11:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 1910, + "id": 1992, "name": "thirdPrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "3806:10:4", + "referencedDeclaration": 1936, + "src": "3831:10:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1911, + "id": 1993, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "3818:3:4", + "referencedDeclaration": 4294967281, + "src": "3843:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1912, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3818:10:4", + "src": "3843:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 1913, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "3830:3:4", + "expression": { + "id": 1995, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3855:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3855:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8752,18 +8531,18 @@ "typeString": "uint256" } ], - "id": 1907, + "id": 1989, "name": "PrizeAllocation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "3765:15:4", + "referencedDeclaration": 1817, + "src": "3790:15:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (uint256,uint256,uint256,address,uint256)" } }, - "id": 1914, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, @@ -8771,75 +8550,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3765:69:4", + "src": "3790:81:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1915, + "id": 1998, "nodeType": "EmitStatement", - "src": "3760:74:4" + "src": "3785:86:4" } ] }, - "documentation": "@notice Allows the organizer to allocate funds that's going to be distributed to winners.\n@dev It does not associate the prize with a specific account, since prizes cound be associated any moment\nby the organizers, as long as prizes were not allocated before.\nThe contract needs to have enought balance to allocate funds to winners.", - "id": 1917, + "documentation": { + "id": 1930, + "nodeType": "StructuredDocumentation", + "src": "2865:376:4", + "text": "@notice Allows the organizer to allocate funds that's going to be distributed to winners.\n@dev It does not associate the prize with a specific account, since prizes cound be associated any moment\nby the organizers, as long as prizes were not allocated before.\nThe contract needs to have enought balance to allocate funds to winners." + }, + "functionSelector": "f59ec3f9", + "id": 2000, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1858, + "id": 1939, "modifierName": { - "argumentTypes": null, - "id": 1857, + "id": 1938, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "3330:13:4", + "referencedDeclaration": 3465, + "src": "3355:13:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3330:13:4" + "src": "3355:13:4" }, { - "arguments": null, - "id": 1860, + "id": 1941, "modifierName": { - "argumentTypes": null, - "id": 1859, + "id": 1940, "name": "whenPrizeNotAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "3352:21:4", + "referencedDeclaration": 1840, + "src": "3377:21:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3352:21:4" + "src": "3377:21:4" } ], "name": "allocatePrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1856, + "id": 1937, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1851, + "id": 1932, + "mutability": "mutable", "name": "firstPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3244:18:4", + "scope": 2000, + "src": "3269:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8847,25 +8630,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1850, + "id": 1931, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3244:7:4", + "src": "3269:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1853, + "id": 1934, + "mutability": "mutable", "name": "secondPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3264:19:4", + "scope": 2000, + "src": "3289:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8873,25 +8656,25 @@ "typeString": "uint256" }, "typeName": { - "id": 1852, + "id": 1933, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3264:7:4", + "src": "3289:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 1855, + "id": 1936, + "mutability": "mutable", "name": "thirdPrize", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "3285:18:4", + "scope": 2000, + "src": "3310:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8899,49 +8682,49 @@ "typeString": "uint256" }, "typeName": { - "id": 1854, + "id": 1935, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3285:7:4", + "src": "3310:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3243:61:4" + "src": "3268:61:4" }, "returnParameters": { - "id": 1861, + "id": 1942, "nodeType": "ParameterList", "parameters": [], - "src": "3378:0:4" + "src": "3403:0:4" }, - "scope": 2089, - "src": "3221:620:4", + "scope": 2174, + "src": "3246:632:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2063, + "id": 2147, "nodeType": "Block", - "src": "4181:1309:4", + "src": "4218:1322:4", "statements": [ { - "assignments": [1933], + "assignments": [2017], "declarations": [ { "constant": false, - "id": 1933, + "id": 2017, + "mutability": "mutable", "name": "teamAddress", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4191:19:4", + "scope": 2147, + "src": "4228:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8949,35 +8732,34 @@ "typeString": "address" }, "typeName": { - "id": 1932, + "id": 2016, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4191:7:4", + "src": "4228:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 1934, - "initialValue": null, + "id": 2018, "nodeType": "VariableDeclarationStatement", - "src": "4191:19:4" + "src": "4228:19:4" }, { - "assignments": [1936], + "assignments": [2020], "declarations": [ { "constant": false, - "id": 1936, + "id": 2020, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4220:14:4", + "scope": 2147, + "src": "4257:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8985,34 +8767,33 @@ "typeString": "uint256" }, "typeName": { - "id": 1935, + "id": 2019, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4220:7:4", + "src": "4257:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 1937, - "initialValue": null, + "id": 2021, "nodeType": "VariableDeclarationStatement", - "src": "4220:14:4" + "src": "4257:14:4" }, { - "assignments": [1939], + "assignments": [2023], "declarations": [ { "constant": false, - "id": 1939, + "id": 2023, + "mutability": "mutable", "name": "rankPosition", "nodeType": "VariableDeclaration", - "scope": 2063, - "src": "4244:18:4", + "scope": 2147, + "src": "4281:18:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9020,44 +8801,40 @@ "typeString": "uint8" }, "typeName": { - "id": 1938, + "id": 2022, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4244:5:4", + "src": "4281:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "value": null, "visibility": "internal" } ], - "id": 1940, - "initialValue": null, + "id": 2024, "nodeType": "VariableDeclarationStatement", - "src": "4244:18:4" + "src": "4281:18:4" }, { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1944, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1941, + "id": 2025, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4277:13:4", + "referencedDeclaration": 2003, + "src": "4314:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9066,35 +8843,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1942, + "id": 2026, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4294:10:4", + "referencedDeclaration": 89, + "src": "4331:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1943, + "id": 2027, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4294:22:4", + "referencedDeclaration": 1127, + "src": "4331:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4277:39:4", + "src": "4314:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9102,24 +8877,22 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1976, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 1973, + "id": 2057, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4587:13:4", + "referencedDeclaration": 2003, + "src": "4624:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9128,35 +8901,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1974, + "id": 2058, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4604:11:4", + "referencedDeclaration": 91, + "src": "4641:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1975, + "id": 2059, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4604:23:4", + "referencedDeclaration": 1127, + "src": "4641:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4587:40:4", + "src": "4624:40:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9164,24 +8935,22 @@ }, "falseBody": { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2008, + "id": 2092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2005, + "id": 2089, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4903:13:4", + "referencedDeclaration": 2003, + "src": "4940:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9190,61 +8959,56 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2006, + "id": 2090, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4920:10:4", + "referencedDeclaration": 93, + "src": "4957:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2007, + "id": 2091, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4920:22:4", + "referencedDeclaration": 1127, + "src": "4957:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4903:39:4", + "src": "4940:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2041, + "id": 2125, "nodeType": "Block", - "src": "5209:102:4", + "src": "5246:102:4", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e", - "id": 2038, + "id": 2122, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5230:69:4", - "subdenomination": null, + "src": "5267:69:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_84888db729f17b29a04acf7a945371d331f5f1de409134c2c957ac7cd7c45cc0", "typeString": "literal_string \"Invalid address. Address check failed. Should not reach this point.\"" @@ -9259,18 +9023,18 @@ "typeString": "literal_string \"Invalid address. Address check failed. Should not reach this point.\"" } ], - "id": 2037, + "id": 2121, "name": "revert", "nodeType": "Identifier", - "overloadedDeclarations": [4235, 4236], - "referencedDeclaration": 4236, - "src": "5223:6:4", + "overloadedDeclarations": [4294967277, 4294967277], + "referencedDeclaration": 4294967277, + "src": "5260:6:4", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 2039, + "id": 2123, "isConstant": false, "isLValue": false, "isPure": false, @@ -9278,42 +9042,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5223:77:4", + "src": "5260:77:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2040, + "id": 2124, "nodeType": "ExpressionStatement", - "src": "5223:77:4" + "src": "5260:77:4" } ] }, - "id": 2042, + "id": 2126, "nodeType": "IfStatement", - "src": "4899:412:4", + "src": "4936:412:4", "trueBody": { - "id": 2036, + "id": 2120, "nodeType": "Block", - "src": "4944:259:4", + "src": "4981:259:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2012, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2009, + "id": 2093, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4958:11:4", + "referencedDeclaration": 2017, + "src": "4995:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9322,60 +9085,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2010, + "id": 2094, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "4972:10:4", + "referencedDeclaration": 93, + "src": "5009:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2011, + "id": 2095, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4972:22:4", + "referencedDeclaration": 1127, + "src": "5009:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4958:36:4", + "src": "4995:36:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2013, + "id": 2097, "nodeType": "ExpressionStatement", - "src": "4958:36:4" + "src": "4995:36:4" }, { "expression": { - "argumentTypes": null, - "id": 2017, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2014, + "id": 2098, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5008:6:4", + "referencedDeclaration": 2020, + "src": "5045:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9384,60 +9143,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2015, + "id": 2099, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5017:15:4", + "referencedDeclaration": 1802, + "src": "5054:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2016, + "id": 2100, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "5017:22:4", + "referencedDeclaration": 1787, + "src": "5054:22:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5008:31:4", + "src": "5045:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2018, + "id": 2102, "nodeType": "ExpressionStatement", - "src": "5008:31:4" + "src": "5045:31:4" }, { "expression": { - "argumentTypes": null, - "id": 2021, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2019, + "id": 2103, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "5053:12:4", + "referencedDeclaration": 2023, + "src": "5090:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9446,40 +9201,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "33", - "id": 2020, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5068:1:4", - "subdenomination": null, + "src": "5105:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "5053:16:4", + "src": "5090:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2022, + "id": 2106, "nodeType": "ExpressionStatement", - "src": "5053:16:4" + "src": "5090:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2026, + "id": 2110, "isConstant": false, "isLValue": false, "isPure": false, @@ -9487,31 +9238,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "5091:21:4", + "src": "5128:21:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2024, + "id": 2108, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5092:15:4", + "referencedDeclaration": 1802, + "src": "5129:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2025, + "id": 2109, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "5092:20:4", + "referencedDeclaration": 1789, + "src": "5129:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9523,17 +9272,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f7220746869726420706c616365", - "id": 2027, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5114:36:4", - "subdenomination": null, + "src": "5151:36:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99b3c08ddbb6f6de361039e625a6b03265a8247d25a65a0ed805729fc4d9db4d", "typeString": "literal_string \"Prize already paid for third place\"" @@ -9552,18 +9299,18 @@ "typeString": "literal_string \"Prize already paid for third place\"" } ], - "id": 2023, + "id": 2107, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "5083:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5120:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2028, + "id": 2112, "isConstant": false, "isLValue": false, "isPure": false, @@ -9571,48 +9318,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5083:68:4", + "src": "5120:68:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2029, + "id": 2113, "nodeType": "ExpressionStatement", - "src": "5083:68:4" + "src": "5120:68:4" }, { "expression": { - "argumentTypes": null, - "id": 2034, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2030, + "id": 2114, "name": "thirdPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "5165:15:4", + "referencedDeclaration": 1802, + "src": "5202:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2032, + "id": 2116, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "5165:20:4", + "referencedDeclaration": 1789, + "src": "5202:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9621,60 +9366,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2033, + "id": 2117, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5188:4:4", - "subdenomination": null, + "src": "5225:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "5165:27:4", + "src": "5202:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2035, + "id": 2119, "nodeType": "ExpressionStatement", - "src": "5165:27:4" + "src": "5202:27:4" } ] } }, - "id": 2043, + "id": 2127, "nodeType": "IfStatement", - "src": "4583:728:4", + "src": "4620:728:4", "trueBody": { - "id": 2004, + "id": 2088, "nodeType": "Block", - "src": "4629:264:4", + "src": "4666:264:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1980, + "id": 2064, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1977, + "id": 2061, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4643:11:4", + "referencedDeclaration": 2017, + "src": "4680:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9683,60 +9424,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1978, + "id": 2062, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "4657:11:4", + "referencedDeclaration": 91, + "src": "4694:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1979, + "id": 2063, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4657:23:4", + "referencedDeclaration": 1127, + "src": "4694:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4643:37:4", + "src": "4680:37:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1981, + "id": 2065, "nodeType": "ExpressionStatement", - "src": "4643:37:4" + "src": "4680:37:4" }, { "expression": { - "argumentTypes": null, - "id": 1985, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1982, + "id": 2066, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4694:6:4", + "referencedDeclaration": 2020, + "src": "4731:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9745,60 +9482,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1983, + "id": 2067, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4703:16:4", + "referencedDeclaration": 1800, + "src": "4740:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1984, + "id": 2068, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "4703:23:4", + "referencedDeclaration": 1787, + "src": "4740:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4694:32:4", + "src": "4731:32:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1986, + "id": 2070, "nodeType": "ExpressionStatement", - "src": "4694:32:4" + "src": "4731:32:4" }, { "expression": { - "argumentTypes": null, - "id": 1989, + "id": 2073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1987, + "id": 2071, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "4740:12:4", + "referencedDeclaration": 2023, + "src": "4777:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9807,40 +9540,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "32", - "id": 1988, + "id": 2072, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4755:1:4", - "subdenomination": null, + "src": "4792:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "4740:16:4", + "src": "4777:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1990, + "id": 2074, "nodeType": "ExpressionStatement", - "src": "4740:16:4" + "src": "4777:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1994, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": false, @@ -9848,31 +9577,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4778:22:4", + "src": "4815:22:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1992, + "id": 2076, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4779:16:4", + "referencedDeclaration": 1800, + "src": "4816:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1993, + "id": 2077, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4779:21:4", + "referencedDeclaration": 1789, + "src": "4816:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9884,17 +9611,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365", - "id": 1995, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4802:37:4", - "subdenomination": null, + "src": "4839:37:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_f838c111053cd68b0141c2f38cba7cbf8b60f2d00a9fafe6b687584d8fe749de", "typeString": "literal_string \"Prize already paid for second place\"" @@ -9913,18 +9638,18 @@ "typeString": "literal_string \"Prize already paid for second place\"" } ], - "id": 1991, + "id": 2075, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4770:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4807:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1996, + "id": 2080, "isConstant": false, "isLValue": false, "isPure": false, @@ -9932,48 +9657,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4770:70:4", + "src": "4807:70:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1997, + "id": 2081, "nodeType": "ExpressionStatement", - "src": "4770:70:4" + "src": "4807:70:4" }, { "expression": { - "argumentTypes": null, - "id": 2002, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1998, + "id": 2082, "name": "secondPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "4854:16:4", + "referencedDeclaration": 1800, + "src": "4891:16:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 2000, + "id": 2084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4854:21:4", + "referencedDeclaration": 1789, + "src": "4891:21:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9982,60 +9705,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2001, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4878:4:4", - "subdenomination": null, + "src": "4915:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4854:28:4", + "src": "4891:28:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2003, + "id": 2087, "nodeType": "ExpressionStatement", - "src": "4854:28:4" + "src": "4891:28:4" } ] } }, - "id": 2044, + "id": 2128, "nodeType": "IfStatement", - "src": "4273:1038:4", + "src": "4310:1038:4", "trueBody": { - "id": 1972, + "id": 2056, "nodeType": "Block", - "src": "4318:259:4", + "src": "4355:259:4", "statements": [ { "expression": { - "argumentTypes": null, - "id": 1948, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1945, + "id": 2029, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "4332:11:4", + "referencedDeclaration": 2017, + "src": "4369:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10044,60 +9763,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1946, + "id": 2030, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "4346:10:4", + "referencedDeclaration": 89, + "src": "4383:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 1947, + "id": 2031, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "4346:22:4", + "referencedDeclaration": 1127, + "src": "4383:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4332:36:4", + "src": "4369:36:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1949, + "id": 2033, "nodeType": "ExpressionStatement", - "src": "4332:36:4" + "src": "4369:36:4" }, { "expression": { - "argumentTypes": null, - "id": 1953, + "id": 2037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1950, + "id": 2034, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4382:6:4", + "referencedDeclaration": 2020, + "src": "4419:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10106,60 +9821,56 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1951, + "id": 2035, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4391:15:4", + "referencedDeclaration": 1798, + "src": "4428:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1952, + "id": 2036, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "amount", "nodeType": "MemberAccess", - "referencedDeclaration": 1712, - "src": "4391:22:4", + "referencedDeclaration": 1787, + "src": "4428:22:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4382:31:4", + "src": "4419:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1954, + "id": 2038, "nodeType": "ExpressionStatement", - "src": "4382:31:4" + "src": "4419:31:4" }, { "expression": { - "argumentTypes": null, - "id": 1957, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 1955, + "id": 2039, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "4427:12:4", + "referencedDeclaration": 2023, + "src": "4464:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10168,40 +9879,36 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "31", - "id": 1956, + "id": 2040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4442:1:4", - "subdenomination": null, + "src": "4479:1:4", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "4427:16:4", + "src": "4464:16:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1958, + "id": 2042, "nodeType": "ExpressionStatement", - "src": "4427:16:4" + "src": "4464:16:4" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 1962, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, @@ -10209,31 +9916,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "4465:21:4", + "src": "4502:21:4", "subExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1960, + "id": 2044, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4466:15:4", + "referencedDeclaration": 1798, + "src": "4503:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1961, + "id": 2045, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4466:20:4", + "referencedDeclaration": 1789, + "src": "4503:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10245,17 +9950,15 @@ } }, { - "argumentTypes": null, "hexValue": "5072697a6520616c7265616479207061696420666f7220666972737420706c616365", - "id": 1963, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4488:36:4", - "subdenomination": null, + "src": "4525:36:4", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99226e35aabf9d196c8ac70dd30e489093fd1dab36d6504997b708f21d1bfde9", "typeString": "literal_string \"Prize already paid for first place\"" @@ -10274,18 +9977,18 @@ "typeString": "literal_string \"Prize already paid for first place\"" } ], - "id": 1959, + "id": 2043, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "4457:7:4", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4494:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1964, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, @@ -10293,48 +9996,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4457:68:4", + "src": "4494:68:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1965, + "id": 2049, "nodeType": "ExpressionStatement", - "src": "4457:68:4" + "src": "4494:68:4" }, { "expression": { - "argumentTypes": null, - "id": 1970, + "id": 2054, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 1966, + "id": 2050, "name": "firstPlacePrize", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "4539:15:4", + "referencedDeclaration": 1798, + "src": "4576:15:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Prize_$1715_storage", + "typeIdentifier": "t_struct$_Prize_$1790_storage", "typeString": "struct Hackathon.Prize storage ref" } }, - "id": 1968, + "id": 2052, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "paid", "nodeType": "MemberAccess", - "referencedDeclaration": 1714, - "src": "4539:20:4", + "referencedDeclaration": 1789, + "src": "4576:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10343,116 +10044,120 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 1969, + "id": 2053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4562:4:4", - "subdenomination": null, + "src": "4599:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "4539:27:4", + "src": "4576:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1971, + "id": 2055, "nodeType": "ExpressionStatement", - "src": "4539:27:4" + "src": "4576:27:4" } ] } }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2046, + "id": 2130, "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "5335:11:4", + "referencedDeclaration": 2017, + "src": "5372:11:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, - "id": 2047, + "id": 2131, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5348:6:4", + "referencedDeclaration": 2020, + "src": "5385:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2048, + "id": 2132, "name": "rankPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "5356:12:4", + "referencedDeclaration": 2023, + "src": "5393:12:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2049, + "id": 2133, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "5370:3:4", + "referencedDeclaration": 4294967281, + "src": "5407:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2050, + "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5370:10:4", + "src": "5407:10:4", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, - "id": 2051, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "5382:3:4", + "expression": { + "id": 2135, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "5419:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5419:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10482,18 +10187,18 @@ "typeString": "uint256" } ], - "id": 2045, + "id": 2129, "name": "Withdraw", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "5326:8:4", + "referencedDeclaration": 1830, + "src": "5363:8:4", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint8_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint8,address,uint256)" } }, - "id": 2052, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -10501,138 +10206,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5326:60:4", + "src": "5363:72:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2053, + "id": 2138, "nodeType": "EmitStatement", - "src": "5321:65:4" + "src": "5358:77:4" }, { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "arguments": [ - { - "argumentTypes": null, - "id": 2059, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "5474:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], + "argumentTypes": [], "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "teamAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1933, - "src": "5447:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2054, - "name": "IPayable", + "arguments": [ + { + "id": 2140, + "name": "teamAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2869, - "src": "5438:8:4", + "referencedDeclaration": 2017, + "src": "5496:11:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IPayable_$2869_$", - "typeString": "type(contract IPayable)" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5438:21:4", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2139, + "name": "IPayable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2987, + "src": "5487:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPayable_$2869", - "typeString": "contract IPayable" + "typeIdentifier": "t_type$_t_contract$_IPayable_$2987_$", + "typeString": "type(contract IPayable)" } }, - "id": 2057, + "id": 2141, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "typeConversion", "lValueRequested": false, - "memberName": "deposit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2868, - "src": "5438:29:4", + "names": [], + "nodeType": "FunctionCall", + "src": "5487:21:4", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$__$returns$__$", - "typeString": "function () payable external" + "typeIdentifier": "t_contract$_IPayable_$2987", + "typeString": "contract IPayable" } }, - "id": 2058, + "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "value", + "memberName": "deposit", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5438:35:4", + "referencedDeclaration": 2986, + "src": "5487:29:4", "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$__$returns$__$value_$", - "typeString": "function (uint256) pure returns (function () payable external)" + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" } }, - "id": 2060, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5438:43:4", + "names": ["value"], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 2143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2020, + "src": "5524:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5487:44:4", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$__$returns$__$value", "typeString": "function () payable external" } }, - "id": 2061, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -10640,141 +10321,141 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5438:45:4", + "src": "5487:46:4", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2062, + "id": 2146, "nodeType": "ExpressionStatement", - "src": "5438:45:4" + "src": "5487:46:4" } ] }, - "documentation": "@notice Allows withdrawing prizes to winners.\n@dev Winners must implement IPayable to receive funds.", - "id": 2064, + "documentation": { + "id": 2001, + "nodeType": "StructuredDocumentation", + "src": "3884:128:4", + "text": "@notice Allows withdrawing prizes to winners.\n@dev Winners must implement IPayable to receive funds." + }, + "functionSelector": "11dc45c9", + "id": 2148, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 1922, + "id": 2006, "modifierName": { - "argumentTypes": null, - "id": 1921, + "id": 2005, "name": "whenRankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "4051:17:4", + "referencedDeclaration": 146, + "src": "4088:17:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4051:17:4" + "src": "4088:17:4" }, { - "arguments": null, - "id": 1924, + "id": 2008, "modifierName": { - "argumentTypes": null, - "id": 1923, + "id": 2007, "name": "whenPrizeAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1772, - "src": "4077:18:4", + "referencedDeclaration": 1849, + "src": "4114:18:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4077:18:4" + "src": "4114:18:4" }, { "arguments": [ { - "argumentTypes": null, - "id": 1926, + "id": 2010, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4121:13:4", + "referencedDeclaration": 2003, + "src": "4158:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1927, + "id": 2011, "modifierName": { - "argumentTypes": null, - "id": 1925, + "id": 2009, "name": "onlyValidAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "4104:16:4", + "referencedDeclaration": 1888, + "src": "4141:16:4", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4104:31:4" + "src": "4141:31:4" }, { "arguments": [ { - "argumentTypes": null, - "id": 1929, + "id": 2013, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "4162:13:4", + "referencedDeclaration": 2003, + "src": "4199:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 1930, + "id": 2014, "modifierName": { - "argumentTypes": null, - "id": 1928, + "id": 2012, "name": "onlyWinnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "4144:17:4", + "referencedDeclaration": 1862, + "src": "4181:17:4", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_address_$", "typeString": "modifier (address)" } }, "nodeType": "ModifierInvocation", - "src": "4144:32:4" + "src": "4181:32:4" } ], "name": "withdrawPrize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1920, + "id": 2004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1919, + "id": 2003, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 2064, - "src": "4003:21:4", + "scope": 2148, + "src": "4040:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10782,85 +10463,79 @@ "typeString": "address" }, "typeName": { - "id": 1918, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4003:7:4", + "src": "4040:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "4002:23:4" + "src": "4039:23:4" }, "returnParameters": { - "id": 1931, + "id": 2015, "nodeType": "ParameterList", "parameters": [], - "src": "4181:0:4" + "src": "4218:0:4" }, - "scope": 2089, - "src": "3980:1510:4", + "scope": 2174, + "src": "4017:1523:4", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2087, + "id": 2172, "nodeType": "Block", - "src": "5650:206:4", + "src": "5700:206:4", "statements": [ { "expression": { - "argumentTypes": null, "components": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2084, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2079, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2074, + "id": 2159, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2071, + "id": 2156, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5681:13:4", + "referencedDeclaration": 2151, + "src": "5731:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10869,35 +10544,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2072, + "id": 2157, "name": "firstPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "5698:10:4", + "referencedDeclaration": 89, + "src": "5748:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2073, + "id": 2158, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5698:22:4", + "referencedDeclaration": 1127, + "src": "5748:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5681:39:4", + "src": "5731:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10906,24 +10579,22 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2078, + "id": 2163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2075, + "id": 2160, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5740:13:4", + "referencedDeclaration": 2151, + "src": "5790:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10932,41 +10603,39 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2076, + "id": 2161, "name": "secondPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "5757:11:4", + "referencedDeclaration": 91, + "src": "5807:11:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2077, + "id": 2162, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5757:23:4", + "referencedDeclaration": 1127, + "src": "5807:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5740:40:4", + "src": "5790:40:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5681:99:4", + "src": "5731:99:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10975,24 +10644,22 @@ "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2083, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2080, + "id": 2165, "name": "winnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "5800:13:4", + "referencedDeclaration": 2151, + "src": "5850:13:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11001,85 +10668,89 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2081, + "id": 2166, "name": "thirdPlace", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5817:10:4", + "referencedDeclaration": 93, + "src": "5867:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Team_$1085_storage", + "typeIdentifier": "t_struct$_Team_$1134_storage", "typeString": "struct ContestTeamRegistry.Team storage ref" } }, - "id": 2082, + "id": 2167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "teamAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 1078, - "src": "5817:22:4", + "referencedDeclaration": 1127, + "src": "5867:22:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5800:39:4", + "src": "5850:39:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5681:158:4", + "src": "5731:158:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 2085, + "id": 2170, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5667:182:4", + "src": "5717:182:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2070, - "id": 2086, + "functionReturnParameters": 2155, + "id": 2171, "nodeType": "Return", - "src": "5660:189:4" + "src": "5710:189:4" } ] }, - "documentation": "Checks if the specifier address is one of the winners", - "id": 2088, + "documentation": { + "id": 2149, + "nodeType": "StructuredDocumentation", + "src": "5546:72:4", + "text": "Checks if the specifier address is one of the winners" + }, + "id": 2173, "implemented": true, "kind": "function", "modifiers": [], "name": "isWinnerAddress", "nodeType": "FunctionDefinition", "parameters": { - "id": 2067, + "id": 2152, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2066, + "id": 2151, + "mutability": "mutable", "name": "winnerAddress", "nodeType": "VariableDeclaration", - "scope": 2088, - "src": "5599:21:4", + "scope": 2173, + "src": "5649:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11087,33 +10758,33 @@ "typeString": "address" }, "typeName": { - "id": 2065, + "id": 2150, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5599:7:4", + "src": "5649:7:4", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "5598:23:4" + "src": "5648:23:4" }, "returnParameters": { - "id": 2070, + "id": 2155, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2069, + "id": 2154, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2088, - "src": "5644:4:4", + "scope": 2173, + "src": "5694:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11121,43 +10792,51 @@ "typeString": "bool" }, "typeName": { - "id": 2068, + "id": 2153, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5644:4:4", + "src": "5694:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "5643:6:4" + "src": "5693:6:4" }, - "scope": 2089, - "src": "5574:282:4", + "scope": 2174, + "src": "5624:282:4", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "private" } ], - "scope": 2090, - "src": "597:5261:4" + "scope": 2175, + "src": "637:5271:4" } ], - "src": "0:5859:4" + "src": "40:5869:4" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.472Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.054Z", "devdoc": { "details": "For the payment functionality, the \"withdraw pattern\" is being implemented for this contract. The ledger allocation is done is the method {allocatePrize} and the withdraw is implemented on {withdrawPrize}.", + "events": { + "PrizeAllocation(uint256,uint256,uint256,address,uint256)": { + "details": "emitted when the prize allocation is performed. This may be used to alert winners that their prizes are available to withdraw." + }, + "Withdraw(address,uint256,uint8,address,uint256)": { + "details": "emitted when a prize is withdraw by a winner team." + } + }, + "kind": "dev", "methods": { "allocatePrize(uint256,uint256,uint256)": { "details": "It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners." @@ -11185,28 +10864,50 @@ } }, "getEvaluationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getWinnersIds()": { - "return": "{uint256} First place's id{uint256} Second place's id{uint256} Third place's id" + "returns": { + "_0": "{uint256} First place's id", + "_1": "{uint256} Second place's id", + "_2": "{uint256} Third place's id" + } }, "openEvaluation()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -11254,10 +10955,20 @@ "withdrawPrize(address)": { "details": "Winners must implement IPayable to receive funds." } - } + }, + "version": 1 }, "userdoc": { + "events": { + "Deposit(address,uint256,uint256)": { + "notice": "Event emitted when the contract receives a deposit." + } + }, + "kind": "user", "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + }, "allocatePrize(uint256,uint256,uint256)": { "notice": "Allows the organizer to allocate funds that's going to be distributed to winners." }, @@ -11273,7 +10984,9 @@ "closeSubmission()": { "notice": "Closes the proposal submission process" }, - "constructor": "Creates a new Hackathon contract with a specific _id, _name, desciption, and a specific organizer.", + "constructor": { + "notice": "Creates a new Hackathon contract with a specific _id, _name, desciption, and a specific organizer." + }, "deposit()": { "notice": "Allows the contract to receive funds." }, @@ -11326,6 +11039,7 @@ "notice": "Allows withdrawing prizes to winners." } }, - "notice": "Represents a hackathon contest, where organizers can control the stages/phases of the contest (such as registration, submission, evaluation and results) as well as pay prizes to the winners." + "notice": "Represents a hackathon contest, where organizers can control the stages/phases of the contest (such as registration, submission, evaluation and results) as well as pay prizes to the winners.", + "version": 1 } } diff --git a/build/contracts/HackathonFactory.json b/build/contracts/HackathonFactory.json index 3290090..7369208 100644 --- a/build/contracts/HackathonFactory.json +++ b/build/contracts/HackathonFactory.json @@ -39,7 +39,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -60,12 +59,10 @@ "type": "address" } ], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getDeployedHackathonContracts", "outputs": [ @@ -75,12 +72,10 @@ "type": "address[]" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -96,12 +91,10 @@ "type": "address" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "bytes32", @@ -117,86 +110,104 @@ "type": "address" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"description\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewHackathonContract\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"description\",\"type\":\"bytes32\"}],\"name\":\"createHackathonContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDeployedHackathonContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getHackathonContractById\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"getHackathonContractByName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\",\"methods\":{\"createHackathonContract(bytes32,bytes32)\":{\"params\":{\"description\":\"A short description for the Hackathon.\",\"name\":\"Unique hackathon's name.\"},\"return\":\"The new contract's address.\"},\"getDeployedHackathonContracts()\":{\"return\":\"List of deployed contract's addresses \"},\"getHackathonContractById(uint256)\":{\"return\":\"An address representing a deployed contract\"},\"getHackathonContractByName(bytes32)\":{\"return\":\"An address representing a deployed contract\"}}},\"userdoc\":{\"methods\":{\"createHackathonContract(bytes32,bytes32)\":{\"notice\":\"Creates and deploys a new Hackathon contract.\"},\"getDeployedHackathonContracts()\":{\"notice\":\"Get a list with the addresses of the deployed contracts.\"},\"getHackathonContractById(uint256)\":{\"notice\":\"Get a contract address with the internal id.\"},\"getHackathonContractByName(bytes32)\":{\"notice\":\"Get a contract address with the internal name.\"}},\"notice\":\"A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol\":\"HackathonFactory\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xc15a9e0ef31fce09f610aa64da88dbf3f256af120e0c94d4b90dca958cc61a0f\",\"urls\":[\"bzz-raw://9597586371e6012927afcecc19997345b541dab8882a8cb7cc7e8f46a3f60838\",\"dweb:/ipfs/QmdUxhk9iwYeY1WNHcAxFDTMFoMznLd36FCko9AmwYwDaJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xe3fdb779273bfa141a141ef263c9792767c35b57403687a37520a927d09b6047\",\"urls\":[\"bzz-raw://adca681bf59d48162c48ef671ac1de8620f3c602059605cadd2bd536b34210d6\",\"dweb:/ipfs/QmXjvH1oQu9WoyzbCEVWtEGwqQ3ea3uXDgfV3qFroUo3uz\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol\":{\"keccak256\":\"0x504e50198f677e87781c9122a7cd539509f224c22711c35aa8fb5a53ddf81600\",\"urls\":[\"bzz-raw://b83d9850434aaae51afd08a4f16548330aa0576122df50460dff450a8dc8355a\",\"dweb:/ipfs/QmVCRyM15eCiRZ8MwBxhxdWtR1PHhjYXcwRzSmWzoEvFxc\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50613afc806100206000396000f3fe60806040526004361061003f5760003560e01c80632208d92a1461004457806334ab94841461008a578063a3ea17e6146100b4578063bc00a209146100d7575b600080fd5b34801561005057600080fd5b5061006e6004803603602081101561006757600080fd5b503561013c565b604080516001600160a01b039092168252519081900360200190f35b34801561009657600080fd5b5061006e600480360360208110156100ad57600080fd5b50356101a8565b61006e600480360360408110156100ca57600080fd5b5080359060200135610229565b3480156100e357600080fd5b506100ec610460565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610128578181015183820152602001610110565b505050509050019250505060405180910390f35b600080548210610180576040805162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b604482015290519081900360640190fd5b6000828154811061018d57fe5b6000918252602090912001546001600160a01b031692915050565b60008180821a60f81b6001600160f81b03191661020c576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b60008280821a60f81b6001600160f81b03191661028d576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b60008481526001602052604090205484906001600160a01b0316156102f9576040805162461bcd60e51b815260206004820152601d60248201527f4861636b6174686f6e206e616d6520616c726561647920696e20757365000000604482015290519081900360640190fd5b84666672616e63697360c81b14610349576040805162461bcd60e51b815260206004820152600f60248201526e1b985b59481a5cc81a5b9d985b1a59608a1b604482015290519081900360640190fd5b600080805490509050600081878733604051610364906104c2565b93845260208401929092526040808401919091526001600160a01b0390911660608301525190819003608001906000f0801580156103a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558b8452602092835260409384902080549091168217905582518681529182018b90528183018a9052606082015233608082015290519192507f6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b919081900360a00190a19695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156104b857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161049a575b5050505050905090565b6135f8806104d08339019056fe60806040523480156200001157600080fd5b50604051620035f8380380620035f8833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000db816001600160e01b036200019216565b50849150600090501a60f81b7fff00000000000000000000000000000000000000000000000000000000000000166200017557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b50602292909255602355602455602b805460ff1916905562000424565b620001a8816200022c60201b62002cef1760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620002269290916200027e811b620025c117901c565b600a5550565b62000247816004620002fa60201b62002e2e1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015620002f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200030f82826001600160e01b03620003a116565b156200037c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000404576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620035d66022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6131a280620004346000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108ea565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108f0565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cfe565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d0a565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d4a565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d9565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b031661112c565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab611147565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611152565b34801561052557600080fd5b506104bd61122d565b34801561053a57600080fd5b506102ab61123b565b34801561054f57600080fd5b506102ab611244565b34801561056457600080fd5b506102666112e2565b34801561057957600080fd5b506105826112e8565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112f6565b3480156105eb57600080fd5b506102ab6116d4565b34801561060057600080fd5b506102ab611770565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c36565b34801561064857600080fd5b506104bd611c83565b34801561065d57600080fd5b506102ab611c8c565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d26565b3480156106a557600080fd5b50610266611d73565b3480156106ba57600080fd5b506102ab611d79565b3480156106cf57600080fd5b506102ab611e12565b6102ab611ead565b3480156106ec57600080fd5b506104bd611f25565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f2e565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f7b565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120e7565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120fa565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b5080359060208101359060400135612103565b3480156107f757600080fd5b506102ab6122bc565b6000806000806000856108128161235b565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61085d612eaf565b6001888154811061086a57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff16610940576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610997576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109ea576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a325760405162461bcd60e51b8152600401808060200182810382526032815260200180612fce6032913960400191505060405180910390fd5b81610a3c81612362565b610a8d576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b175750506011546025546026546001600160a01b0390921692509060019060ff1615610b055760405162461bcd60e51b81526004018080602001828103825260228152602001806130436022913960400191505060405180910390fd5b6026805460ff19166001179055610c54565b6017546001600160a01b0387811691161415610b9a5750506017546027546028546001600160a01b0390921692509060029060ff1615610b885760405162461bcd60e51b815260040180806020018281038252602381526020018061314b6023913960400191505060405180910390fd5b6028805460ff19166001179055610c54565b601d546001600160a01b0387811691161415610c1d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c0b5760405162461bcd60e51b81526004018080602001828103825260228152602001806130a46022913960400191505060405180910390fd5b602a805460ff19166001179055610c54565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130006043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b5050505050505050505050565b610d07816123a9565b50565b610d468282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124eb92505050565b5050565b600e5460ff16610d98576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610da1336120e7565b610ddc5760405162461bcd60e51b815260040180806020018281038252602b815260200180612f4f602b913960400191505060405180910390fd5b828114610e1a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130c66033913960400191505060405180910390fd5b6002548314610e5a5760405162461bcd60e51b815260040180806020018281038252603f815260200180613065603f913960400191505060405180910390fd5b600060025411610eb1576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612f2d6022913960400191505060405180910390fd5b60005b600254811015611079576000868683818110610f2657fe5b9050602002013590506000858584818110610f3d57fe5b9050602002013560ff169050610f528261235b565b610f95576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9e8261251b565b610fe6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fef816125b5565b611030576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103f57fe5b906000526020600020906006020190506110698260ff1682600501546125c190919063ffffffff16565b6005909101555050600101610f0e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b600061113f60048363ffffffff61262216565b90505b919050565b61115033612689565b565b6000808080806001600160a01b0386166111aa576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6111b2612eaf565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611150336126b9565b600354610100900460ff1615611296576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61129f3361112c565b6112da5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506126fc565b60245481565b600f54601554601b54909192565b60035460009060ff16611349576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166113ab576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316611406576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611476576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611481612eaf565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106115e957fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546116809163ffffffff6125c116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611724576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61172d3361112c565b6117685760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061274c565b60035460ff16156117bf576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff1615611811576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561185e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118673361112c565b6118a25760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b60215460ff16156118f3576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b600060025411611940576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611948612eaf565b611950612eaf565b611958612eaf565b611960612eaf565b60005b600154811015611a4b576001818154811061197a57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119f257508160a001518560a00151105b156119fc57611a43565b8360a001518560a001511115611a16578493929150611a43565b8260a001518560a001511115611a2f5784929150611a43565b8160a001518560a001511115611a43578491505b600101611963565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c3f3361112c565b611c7a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d078161278c565b600e5460ff1690565b600e5460ff16611cda576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611ce33361112c565b611d1e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061291f565b611d2f3361112c565b611d6a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d0781612689565b60225481565b600e5460ff1615611dc6576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dcf3361112c565b611e0a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061295f565b60035460ff1615611e61576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e6a3361112c565b611ea55760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506129a9565b60003411611eec5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0c6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f373361112c565b611f725760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d07816129f3565b81611f858161235b565b611fc8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fd28161251b565b61201a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661206d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061207c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b600061113f60058363ffffffff61262216565b610d0781612a6a565b61210c3361112c565b6121475760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b602b5460ff161561219f576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006121c1826121b5868663ffffffff6125c116565b9063ffffffff6125c116565b905030318111156122035760405162461bcd60e51b815260040180806020018281038252603081526020018061311b6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff1661230f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123183361112c565b6123535760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b611150612b45565b6001541190565b6011546000906001600160a01b038381169116148061238e57506017546001600160a01b038381169116145b8061113f575050601d546001600160a01b0390811691161490565b806123b38161235b565b6123f6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124008161251b565b1561244a576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061245957fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250612492919063ffffffff6125c116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d465761251382828151811061250657fe5b6020026020010151612a6a565b6001016124ee565b60006125268261235b565b61253257506000611142565b61253a612eaf565b6001838154811061254757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561261b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166126695760405162461bcd60e51b81526004018080602001828103825260228152602001806130f96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61269281612b90565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6126c281612bd3565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a546126f690600163ffffffff612c1b16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61279581612c78565b600c546127a0612ee4565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6129fc81612cef565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a546126f6916125c1565b80612a748161235b565b612ab7576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612ac18161251b565b612b09576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b1857fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612492906001612c1b565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612b9981612d37565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612bcd90600163ffffffff612c1b16565b60075550565b612be460048263ffffffff612d7f16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612c72576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612c8181612de6565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612bcd916125c1565b612d0060048263ffffffff612e2e16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612d4860058263ffffffff612d7f16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d898282612622565b612dc45760405162461bcd60e51b8152600401808060200182810382526021815260200180612fad6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612df760058263ffffffff612e2e16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612e388282612622565b15612e8a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820d3fc6eadc7d287f863a2ee4ffbede7533e2750d1d91626897beab69d7a1893ef64736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820f15920d5c45c08558d611b5c0ef07f36701b2e79a6b5f93ac4100105468e249464736f6c634300050c0032", - "deployedBytecode": "0x60806040526004361061003f5760003560e01c80632208d92a1461004457806334ab94841461008a578063a3ea17e6146100b4578063bc00a209146100d7575b600080fd5b34801561005057600080fd5b5061006e6004803603602081101561006757600080fd5b503561013c565b604080516001600160a01b039092168252519081900360200190f35b34801561009657600080fd5b5061006e600480360360208110156100ad57600080fd5b50356101a8565b61006e600480360360408110156100ca57600080fd5b5080359060200135610229565b3480156100e357600080fd5b506100ec610460565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610128578181015183820152602001610110565b505050509050019250505060405180910390f35b600080548210610180576040805162461bcd60e51b815260206004820152600a6024820152691a5b9d985b1a59081a5960b21b604482015290519081900360640190fd5b6000828154811061018d57fe5b6000918252602090912001546001600160a01b031692915050565b60008180821a60f81b6001600160f81b03191661020c576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b60008280821a60f81b6001600160f81b03191661028d576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b60008481526001602052604090205484906001600160a01b0316156102f9576040805162461bcd60e51b815260206004820152601d60248201527f4861636b6174686f6e206e616d6520616c726561647920696e20757365000000604482015290519081900360640190fd5b84666672616e63697360c81b14610349576040805162461bcd60e51b815260206004820152600f60248201526e1b985b59481a5cc81a5b9d985b1a59608a1b604482015290519081900360640190fd5b600080805490509050600081878733604051610364906104c2565b93845260208401929092526040808401919091526001600160a01b0390911660608301525190819003608001906000f0801580156103a6573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558b8452602092835260409384902080549091168217905582518681529182018b90528183018a9052606082015233608082015290519192507f6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b919081900360a00190a19695505050505050565b606060008054806020026020016040519081016040528092919081815260200182805480156104b857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161049a575b5050505050905090565b6135f8806104d08339019056fe60806040523480156200001157600080fd5b50604051620035f8380380620035f8833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000c757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000db816001600160e01b036200019216565b50849150600090501a60f81b7fff00000000000000000000000000000000000000000000000000000000000000166200017557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b50602292909255602355602455602b805460ff1916905562000424565b620001a8816200022c60201b62002cef1760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620002269290916200027e811b620025c117901c565b600a5550565b62000247816004620002fa60201b62002e2e1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015620002f357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200030f82826001600160e01b03620003a116565b156200037c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821662000404576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620035d66022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6131a280620004346000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108ea565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108f0565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cfe565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d0a565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d4a565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d9565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b031661112c565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab611147565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611152565b34801561052557600080fd5b506104bd61122d565b34801561053a57600080fd5b506102ab61123b565b34801561054f57600080fd5b506102ab611244565b34801561056457600080fd5b506102666112e2565b34801561057957600080fd5b506105826112e8565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112f6565b3480156105eb57600080fd5b506102ab6116d4565b34801561060057600080fd5b506102ab611770565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c36565b34801561064857600080fd5b506104bd611c83565b34801561065d57600080fd5b506102ab611c8c565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d26565b3480156106a557600080fd5b50610266611d73565b3480156106ba57600080fd5b506102ab611d79565b3480156106cf57600080fd5b506102ab611e12565b6102ab611ead565b3480156106ec57600080fd5b506104bd611f25565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f2e565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f7b565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120e7565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120fa565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b5080359060208101359060400135612103565b3480156107f757600080fd5b506102ab6122bc565b6000806000806000856108128161235b565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b61085d612eaf565b6001888154811061086a57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff16610940576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610997576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109ea576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a325760405162461bcd60e51b8152600401808060200182810382526032815260200180612fce6032913960400191505060405180910390fd5b81610a3c81612362565b610a8d576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b175750506011546025546026546001600160a01b0390921692509060019060ff1615610b055760405162461bcd60e51b81526004018080602001828103825260228152602001806130436022913960400191505060405180910390fd5b6026805460ff19166001179055610c54565b6017546001600160a01b0387811691161415610b9a5750506017546027546028546001600160a01b0390921692509060029060ff1615610b885760405162461bcd60e51b815260040180806020018281038252602381526020018061314b6023913960400191505060405180910390fd5b6028805460ff19166001179055610c54565b601d546001600160a01b0387811691161415610c1d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c0b5760405162461bcd60e51b81526004018080602001828103825260228152602001806130a46022913960400191505060405180910390fd5b602a805460ff19166001179055610c54565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130006043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cdd57600080fd5b505af1158015610cf1573d6000803e3d6000fd5b5050505050505050505050565b610d07816123a9565b50565b610d468282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506124eb92505050565b5050565b600e5460ff16610d98576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610da1336120e7565b610ddc5760405162461bcd60e51b815260040180806020018281038252602b815260200180612f4f602b913960400191505060405180910390fd5b828114610e1a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130c66033913960400191505060405180910390fd5b6002548314610e5a5760405162461bcd60e51b815260040180806020018281038252603f815260200180613065603f913960400191505060405180910390fd5b600060025411610eb1576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f0b5760405162461bcd60e51b8152600401808060200182810382526022815260200180612f2d6022913960400191505060405180910390fd5b60005b600254811015611079576000868683818110610f2657fe5b9050602002013590506000858584818110610f3d57fe5b9050602002013560ff169050610f528261235b565b610f95576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9e8261251b565b610fe6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fef816125b5565b611030576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103f57fe5b906000526020600020906006020190506110698260ff1682600501546125c190919063ffffffff16565b6005909101555050600101610f0e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b600061113f60048363ffffffff61262216565b90505b919050565b61115033612689565b565b6000808080806001600160a01b0386166111aa576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6111b2612eaf565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611150336126b9565b600354610100900460ff1615611296576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61129f3361112c565b6112da5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506126fc565b60245481565b600f54601554601b54909192565b60035460009060ff16611349576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b0319166113ab576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b038316611406576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611476576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611481612eaf565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909301929092558154909190839081106115e957fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546116809163ffffffff6125c116565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611724576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61172d3361112c565b6117685760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061274c565b60035460ff16156117bf576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff1615611811576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561185e576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118673361112c565b6118a25760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b60215460ff16156118f3576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b600060025411611940576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611948612eaf565b611950612eaf565b611958612eaf565b611960612eaf565b60005b600154811015611a4b576001818154811061197a57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119f257508160a001518560a00151105b156119fc57611a43565b8360a001518560a001511115611a16578493929150611a43565b8260a001518560a001511115611a2f5784929150611a43565b8160a001518560a001511115611a43578491505b600101611963565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c3f3361112c565b611c7a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d078161278c565b600e5460ff1690565b600e5460ff16611cda576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611ce33361112c565b611d1e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061291f565b611d2f3361112c565b611d6a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d0781612689565b60225481565b600e5460ff1615611dc6576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dcf3361112c565b611e0a5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b61115061295f565b60035460ff1615611e61576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e6a3361112c565b611ea55760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b6111506129a9565b60003411611eec5760405162461bcd60e51b8152600401808060200182810382526021815260200180612f0c6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f373361112c565b611f725760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b610d07816129f3565b81611f858161235b565b611fc8576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fd28161251b565b61201a576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661206d576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061207c57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b600061113f60058363ffffffff61262216565b610d0781612a6a565b61210c3361112c565b6121475760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b602b5460ff161561219f576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006121c1826121b5868663ffffffff6125c116565b9063ffffffff6125c116565b905030318111156122035760405162461bcd60e51b815260040180806020018281038252603081526020018061311b6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff1661230f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123183361112c565b6123535760405162461bcd60e51b8152600401808060200182810382526033815260200180612f7a6033913960400191505060405180910390fd5b611150612b45565b6001541190565b6011546000906001600160a01b038381169116148061238e57506017546001600160a01b038381169116145b8061113f575050601d546001600160a01b0390811691161490565b806123b38161235b565b6123f6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124008161251b565b1561244a576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061245957fe5b600091825260209091206004600690920201908101805460ff19166001908117909155600254919250612492919063ffffffff6125c116565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d465761251382828151811061250657fe5b6020026020010151612a6a565b6001016124ee565b60006125268261235b565b61253257506000611142565b61253a612eaf565b6001838154811061254757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561261b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166126695760405162461bcd60e51b81526004018080602001828103825260228152602001806130f96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61269281612b90565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6126c281612bd3565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a546126f690600163ffffffff612c1b16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61279581612c78565b600c546127a0612ee4565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6129fc81612cef565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a546126f6916125c1565b80612a748161235b565b612ab7576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612ac18161251b565b612b09576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b1857fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612492906001612c1b565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612b9981612d37565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612bcd90600163ffffffff612c1b16565b60075550565b612be460048263ffffffff612d7f16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612c72576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612c8181612de6565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612bcd916125c1565b612d0060048263ffffffff612e2e16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612d4860058263ffffffff612d7f16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d898282612622565b612dc45760405162461bcd60e51b8152600401808060200182810382526021815260200180612fad6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612df760058263ffffffff612e2e16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612e388282612622565b15612e8a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820d3fc6eadc7d287f863a2ee4ffbede7533e2750d1d91626897beab69d7a1893ef64736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820f15920d5c45c08558d611b5c0ef07f36701b2e79a6b5f93ac4100105468e249464736f6c634300050c0032", - "sourceMap": "356:2645:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;356:2645:6;;;;;;;", - "deployedSourceMap": "356:2645:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2525:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2525:185:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2525:185:6;;:::i;:::-;;;;-1:-1:-1;;;;;2525:185:6;;;;;;;;;;;;;;2854:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2854:145:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2854:145:6;;:::i;1430:682::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1430:682:6;;;;;;;:::i;2261:122::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2261:122:6;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2261:122:6;;;;;;;;;;;;;;;;;2525:185;2592:7;2624:25;;2619:30;;2611:53;;;;;-1:-1:-1;;;2611:53:6;;;;;;;;;;;;-1:-1:-1;;;2611:53:6;;;;;;;;;;;;;;;2681:18;2700:2;2681:22;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2681:22:6;;2525:185;-1:-1:-1;;2525:185:6:o;2854:145::-;2944:7;2929:4;;2944:7;928;;;-1:-1:-1;;;;;;928:12:6;920:55;;;;;-1:-1:-1;;;920:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2970:22:6;;;;:16;:22;;;;;;-1:-1:-1;;;;;2970:22:6;;2854:145::o;1430:682::-;1607:7;1550:4;;1607:7;928;;;-1:-1:-1;;;;;;928:12:6;920:55;;;;;-1:-1:-1;;;920:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1154:1;1120:22;;;:16;:22;;;;;;1584:4;;-1:-1:-1;;;;;1120:22:6;:36;1112:78;;;;;-1:-1:-1;;;1112:78:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1723:4;-1:-1:-1;;;1723:17:6;1715:45;;;;;-1:-1:-1;;;1715:45:6;;;;;;;;;;;;-1:-1:-1;;;1715:45:6;;;;;;;;;;;;;;;1770:10;1783:18;:25;;;;1770:38;;1818:20;1863:2;1867:4;1873:11;1886:10;1849:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1849:48:6;;;;;;;;;;;;;;;-1:-1:-1;1849:48:6;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1908:18:6;27:10:-1;;39:1;23:18;;;45:23;;1908:37:6;;;;;;-1:-1:-1;;;;;1908:37:6;;-1:-1:-1;;;;;;1908:37:6;;;;;;;;1955:22;;;1908:37;1955:22;;;;;;;;:37;;;;;;;;;2007:69;;;;;;;;;;;;;;;;;;;;;2065:10;2007:69;;;;;;1818:80;;-1:-1:-1;2007:69:6;;;;;;;;;;2093:12;1430:682;-1:-1:-1;;;;;;1430:682:6:o;2261:122::-;2323:16;2358:18;2351:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2351:25:6;;;;;;;;;;;;;;;;;;;;;;;2261:122;:::o;356:2645::-;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../core/Hackathon.sol\";\n\n/**\n @notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n @dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\n */\ncontract HackathonFactory {\n using SafeMath for uint256;\n\n address[] private deployedHackathons;\n mapping(bytes32 => address) private hackathonsByName;\n\n /// @dev emitted when a new Hackathon contract is deployed.\n event NewHackathonContract(uint256 id, bytes32 name, bytes32 description, address contractAddress, address creator);\n // event TeamContractDeployed(uint256 id, bytes32 name, address contractAddress, address creator);\n\n /// @dev Modifier to check if hackathon name is not empty.\n modifier notEmptyName(bytes32 name) {\n require(name[0] != 0, \"Hackathon name cannot be empty\");\n _;\n }\n\n /// @dev Modifier to check if hackathon name is unique.\n modifier uniqueHackathonName(bytes32 name) {\n require(hackathonsByName[name] == address(0), \"Hackathon name already in use\");\n _;\n }\n\n /**\n @notice Creates and deploys a new Hackathon contract.\n @param name Unique hackathon's name.\n @param description A short description for the Hackathon.\n @return The new contract's address.\n */\n function createHackathonContract(bytes32 name, bytes32 description)\n public\n payable\n notEmptyName(name)\n uniqueHackathonName(name)\n returns (address)\n {\n // TODO: insert check if the sent ether is enough to cover the car asset ...\n require(name == \"francis\", \"name is invalid\");\n uint256 id = deployedHackathons.length;\n address newHackathon = address(new Hackathon(id, name, description, msg.sender));\n deployedHackathons.push(newHackathon);\n hackathonsByName[name] = newHackathon;\n emit NewHackathonContract(id, name, description, newHackathon, msg.sender);\n return newHackathon;\n }\n\n /**\n @notice Get a list with the addresses of the deployed contracts.\n @return List of deployed contract's addresses \n */\n function getDeployedHackathonContracts() public view returns (address[] memory) {\n return deployedHackathons;\n }\n\n /**\n @notice Get a contract address with the internal id.\n @return An address representing a deployed contract\n */\n function getHackathonContractById(uint256 id) public view returns (address) {\n require(id < deployedHackathons.length, \"invalid id\");\n return deployedHackathons[id];\n }\n\n /**\n @notice Get a contract address with the internal name.\n @return An address representing a deployed contract\n */\n function getHackathonContractByName(bytes32 name) public view notEmptyName(name) returns (address) {\n return hackathonsByName[name];\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"description\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"NewHackathonContract\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"description\",\"type\":\"bytes32\"}],\"name\":\"createHackathonContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDeployedHackathonContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getHackathonContractById\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"}],\"name\":\"getHackathonContractByName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\",\"events\":{\"NewHackathonContract(uint256,bytes32,bytes32,address,address)\":{\"details\":\"emitted when a new Hackathon contract is deployed.\"}},\"kind\":\"dev\",\"methods\":{\"createHackathonContract(bytes32,bytes32)\":{\"params\":{\"description\":\"A short description for the Hackathon.\",\"name\":\"Unique hackathon's name.\"},\"returns\":{\"_0\":\"The new contract's address.\"}},\"getDeployedHackathonContracts()\":{\"returns\":{\"_0\":\"List of deployed contract's addresses \"}},\"getHackathonContractById(uint256)\":{\"returns\":{\"_0\":\"An address representing a deployed contract\"}},\"getHackathonContractByName(bytes32)\":{\"returns\":{\"_0\":\"An address representing a deployed contract\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createHackathonContract(bytes32,bytes32)\":{\"notice\":\"Creates and deploys a new Hackathon contract.\"},\"getDeployedHackathonContracts()\":{\"notice\":\"Get a list with the addresses of the deployed contracts.\"},\"getHackathonContractById(uint256)\":{\"notice\":\"Get a contract address with the internal id.\"},\"getHackathonContractByName(bytes32)\":{\"notice\":\"Get a contract address with the internal name.\"}},\"notice\":\"A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol\":\"HackathonFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xd1196a748082cce096e21d641038731001120bb5541da30f790f60e25755f47f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bca457ac99eada6a9ced6bce02820693a3a01d593b999f53efd2de08e76d1ff\",\"dweb:/ipfs/QmV5ZNGfyjhfXD8g9Akt2bLm8dthjfe5bCm1xdXSbgm3sS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xa6adf649500cc03ab551c7fb0c646f1bb90190d9d8fc26f6b9d9b786a71faa78\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589c93299c47afbc897d500d66cc2263f8250cb1205868261f00042d98e3f062\",\"dweb:/ipfs/QmcBMUCdUaaDVQJbMaHNXwfJ3QeA3qW7gVwDyfDUdBoqmQ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol\":{\"keccak256\":\"0x7268de97f8d86b1f5ae3a1ccc199b95eb54d0adfb10717084c1bba2b67020809\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7a8b6940f060b3acd41f44d3810d36e1d3dfd880f42834b549e15348584f698e\",\"dweb:/ipfs/QmVLpLNKt6qVdoF9sDnEGSudoN1B8VqzDHhqeidBdTvtNW\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506139c0806100206000396000f3fe60806040526004361061003f5760003560e01c80632208d92a1461004457806334ab94841461008a578063a3ea17e6146100b4578063bc00a209146100d7575b600080fd5b34801561005057600080fd5b5061006e6004803603602081101561006757600080fd5b503561013c565b604080516001600160a01b039092168252519081900360200190f35b34801561009657600080fd5b5061006e600480360360208110156100ad57600080fd5b5035610173565b61006e600480360360408110156100ca57600080fd5b50803590602001356101f4565b3480156100e357600080fd5b506100ec6103db565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610128578181015183820152602001610110565b505050509050019250505060405180910390f35b60008054821061014b57600080fd5b6000828154811061015857fe5b6000918252602090912001546001600160a01b031692915050565b60008180821a60f81b6001600160f81b0319166101d7576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b60008280821a60f81b6001600160f81b031916610258576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b60008481526001602052604090205484906001600160a01b0316156102c4576040805162461bcd60e51b815260206004820152601d60248201527f4861636b6174686f6e206e616d6520616c726561647920696e20757365000000604482015290519081900360640190fd5b6000808054905090506000818787336040516102df9061043d565b93845260208401929092526040808401919091526001600160a01b0390911660608301525190819003608001906000f080158015610321573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558b8452602092835260409384902080549091168217905582518681529182018b90528183018a9052606082015233608082015290519192507f6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b919081900360a00190a19695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561043357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610415575b5050505050905090565b6135408061044b8339019056fe60806040523480156200001157600080fd5b506040516200354038038062003540833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000ad576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000b88162000144565b50849150600090501a60f81b7fff000000000000000000000000000000000000000000000000000000000000001662000127576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b604482015290519081900360640190fd5b50602292909255602355602455602b805460ff191690556200037f565b6200015a81620001de60201b620023241760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620001d892909162000230811b6200236617901c565b600a5550565b620001f98160046200029260201b620023c71790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156200028b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200029e828262000316565b15620002f1576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200035f5760405162461bcd60e51b81526004018080602001828103825260228152602001806200351e6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61318f806200038f6000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108e4565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108ea565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cf8565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d04565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d44565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d3565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b0316611129565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab61113e565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611149565b34801561052557600080fd5b506104bd61121a565b34801561053a57600080fd5b506102ab611228565b34801561054f57600080fd5b506102ab611231565b34801561056457600080fd5b506102666112cf565b34801561057957600080fd5b506105826112d5565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112e3565b3480156105eb57600080fd5b506102ab6116b0565b34801561060057600080fd5b506102ab61174c565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c12565b34801561064857600080fd5b506104bd611c5f565b34801561065d57600080fd5b506102ab611c68565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d02565b3480156106a557600080fd5b50610266611d4f565b3480156106ba57600080fd5b506102ab611d55565b3480156106cf57600080fd5b506102ab611dee565b6102ab611e89565b3480156106ec57600080fd5b506104bd611f01565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f0a565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f57565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120c3565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120d0565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b50803590602081013590604001356120d9565b3480156107f757600080fd5b506102ab612285565b60008060008060008561081281612448565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061086457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661093a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610991576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109e4576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a2c5760405162461bcd60e51b8152600401808060200182810382526032815260200180612fba6032913960400191505060405180910390fd5b81610a368161244f565b610a87576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b115750506011546025546026546001600160a01b0390921692509060019060ff1615610aff5760405162461bcd60e51b815260040180806020018281038252602281526020018061302f6022913960400191505060405180910390fd5b6026805460ff19166001179055610c4e565b6017546001600160a01b0387811691161415610b945750506017546027546028546001600160a01b0390921692509060029060ff1615610b825760405162461bcd60e51b81526004018080602001828103825260238152602001806131376023913960400191505060405180910390fd5b6028805460ff19166001179055610c4e565b601d546001600160a01b0387811691161415610c17575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c055760405162461bcd60e51b81526004018080602001828103825260228152602001806130906022913960400191505060405180910390fd5b602a805460ff19166001179055610c4e565b60405162461bcd60e51b8152600401808060200182810382526043815260200180612fec6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cd757600080fd5b505af1158015610ceb573d6000803e3d6000fd5b5050505050505050505050565b610d0181612496565b50565b610d408282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125d292505050565b5050565b600e5460ff16610d92576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610d9b336120c3565b610dd65760405162461bcd60e51b815260040180806020018281038252602b815260200180612f3b602b913960400191505060405180910390fd5b828114610e145760405162461bcd60e51b81526004018080602001828103825260338152602001806130b26033913960400191505060405180910390fd5b6002548314610e545760405162461bcd60e51b815260040180806020018281038252603f815260200180613051603f913960400191505060405180910390fd5b600060025411610eab576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f055760405162461bcd60e51b8152600401808060200182810382526022815260200180612f196022913960400191505060405180910390fd5b60005b600254811015611073576000868683818110610f2057fe5b9050602002013590506000858584818110610f3757fe5b9050602002013560ff169050610f4c82612448565b610f8f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9882612602565b610fe0576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fe981612696565b61102a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103957fe5b906000526020600020906006020190506110638260ff16826005015461236690919063ffffffff16565b6005909101555050600101610f08565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b60006111366004836126a2565b90505b919050565b61114733612709565b565b6000808080806001600160a01b0386166111a1576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b61114733612739565b600354610100900460ff1615611283576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61128c33611129565b6112c75760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612776565b60245481565b600f54601554601b54909192565b60035460009060ff16611336576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916611398576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166113f3576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611463576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106115cb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461165c91612366565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611700576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61170933611129565b6117445760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476127c6565b60035460ff161561179b576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156117ed576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561183a576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61184333611129565b61187e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b60215460ff16156118cf576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b60006002541161191c576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611924612ec2565b61192c612ec2565b611934612ec2565b61193c612ec2565b60005b600154811015611a27576001818154811061195657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119ce57508160a001518560a00151105b156119d857611a1f565b8360a001518560a0015111156119f2578493929150611a1f565b8260a001518560a001511115611a0b5784929150611a1f565b8160a001518560a001511115611a1f578491505b60010161193f565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c1b33611129565b611c565760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612806565b600e5460ff1690565b600e5460ff16611cb6576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611cbf33611129565b611cfa5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612997565b611d0b33611129565b611d465760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612709565b60225481565b600e5460ff1615611da2576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dab33611129565b611de65760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476129d7565b60035460ff1615611e3d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e4633611129565b611e815760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612a21565b60003411611ec85760405162461bcd60e51b8152600401808060200182810382526021815260200180612ef86021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f1333611129565b611f4e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612a6b565b81611f6181612448565b611fa4576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fae81612602565b611ff6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612049576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061205857fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111366005836126a2565b610d0181612ae2565b6120e233611129565b61211d5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b602b5460ff1615612175576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b600061218b826121858686612366565b90612366565b9050478111156121cc5760405162461bcd60e51b81526004018080602001828103825260308152602001806131076030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff166122d8576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6122e133611129565b61231c5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612bbd565b61232f6004826123c7565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156123c0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6123d182826126a2565b15612423576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061247b57506017546001600160a01b038381169116145b80611136575050601d546001600160a01b0390811691161490565b806124a081612448565b6124e3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124ed81612602565b15612537576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061254657fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125799190612366565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d40576125fa8282815181106125ed57fe5b6020026020010151612ae2565b6001016125d5565b600061260d82612448565b61261957506000611139565b60006001838154811061262857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166126e95760405162461bcd60e51b81526004018080602001828103825260228152602001806130e56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61271281612c08565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61274281612c45565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54612770906001612c87565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61280f81612cc9565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612a7481612324565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461277091612366565b80612aec81612448565b612b2f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612b3981612602565b612b81576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b9057fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612579906001612c87565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612c1181612d40565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612c3f906001612c87565b60075550565b612c50600482612d82565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b612cd281612e80565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612c3f91612366565b612d4b600582612d82565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d8c82826126a2565b612dc75760405162461bcd60e51b8152600401808060200182810382526021815260200180612f996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612e785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e3d578181015183820152602001612e25565b50505050905090810190601f168015612e6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612e8b6005826123c7565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220e32bda6b0d1a14af7f7e5458be4fececb72320d5bc94fe828921668964ece24964736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a264697066735822122050eaa38f36ec7bbcc0266f4d782eb2b6528053e08e0dadd403b33509fef8ba2064736f6c63430007060033", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c80632208d92a1461004457806334ab94841461008a578063a3ea17e6146100b4578063bc00a209146100d7575b600080fd5b34801561005057600080fd5b5061006e6004803603602081101561006757600080fd5b503561013c565b604080516001600160a01b039092168252519081900360200190f35b34801561009657600080fd5b5061006e600480360360208110156100ad57600080fd5b5035610173565b61006e600480360360408110156100ca57600080fd5b50803590602001356101f4565b3480156100e357600080fd5b506100ec6103db565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610128578181015183820152602001610110565b505050509050019250505060405180910390f35b60008054821061014b57600080fd5b6000828154811061015857fe5b6000918252602090912001546001600160a01b031692915050565b60008180821a60f81b6001600160f81b0319166101d7576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b50506000908152600160205260409020546001600160a01b031690565b60008280821a60f81b6001600160f81b031916610258576040805162461bcd60e51b815260206004820152601e60248201527f4861636b6174686f6e206e616d652063616e6e6f7420626520656d7074790000604482015290519081900360640190fd5b60008481526001602052604090205484906001600160a01b0316156102c4576040805162461bcd60e51b815260206004820152601d60248201527f4861636b6174686f6e206e616d6520616c726561647920696e20757365000000604482015290519081900360640190fd5b6000808054905090506000818787336040516102df9061043d565b93845260208401929092526040808401919091526001600160a01b0390911660608301525190819003608001906000f080158015610321573d6000803e3d6000fd5b5060008054600181810183557f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56390910180546001600160a01b0385166001600160a01b031991821681179092558b8452602092835260409384902080549091168217905582518681529182018b90528183018a9052606082015233608082015290519192507f6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b919081900360a00190a19695505050505050565b6060600080548060200260200160405190810160405280929190818152602001828054801561043357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610415575b5050505050905090565b6135408061044b8339019056fe60806040523480156200001157600080fd5b506040516200354038038062003540833981810160405260808110156200003757600080fd5b50805160208201516040830151606090930151919290918080806001600160a01b038116620000ad576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000b88162000144565b50849150600090501a60f81b7fff000000000000000000000000000000000000000000000000000000000000001662000127576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b604482015290519081900360640190fd5b50602292909255602355602455602b805460ff191690556200037f565b6200015a81620001de60201b620023241760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620001d892909162000230811b6200236617901c565b600a5550565b620001f98160046200029260201b620023c71790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156200028b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200029e828262000316565b15620002f1576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166200035f5760405162461bcd60e51b81526004018080602001828103825260228152602001806200351e6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61318f806200038f6000396000f3fe6080604052600436106101ed5760003560e01c80637dc673bc1161010d578063d06e4ee7116100a0578063eaf2f9cd1161006f578063eaf2f9cd14610728578063ed896d6614610758578063f540548b1461078b578063f59ec3f9146107b5578063ffc6ff1e146107eb576101ed565b8063d06e4ee7146106c3578063d0e30db0146106d8578063e35fb241146106e0578063e4725f02146106f5576101ed565b8063ae237c77116100dc578063ae237c7714610651578063ae2ac4ae14610666578063af640d0f14610699578063b2a13f92146106ae576101ed565b80637dc673bc146105df57806390d768e4146105f4578063927cab4714610609578063a2bce8bd1461063c576101ed565b80634b30b66f1161018557806358e2f50e1161015457806358e2f50e146105435780637284e41614610558578063737a63401461056d5780637385712c146105a0576101ed565b80634b30b66f146104d15780634ea701a8146104e657806354e1db2b14610519578063567ad8621461052e576101ed565b8063288c4a46116101c1578063288c4a46146102d75780633e091f64146103545780633ed2b77a1461042357806341676f151461048a576101ed565b80628e0f1b146101f257806306fdde031461025157806311dc45c91461027857806324ba9fab146102ad575b600080fd5b3480156101fe57600080fd5b5061021c6004803603602081101561021557600080fd5b5035610800565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561025d57600080fd5b506102666108e4565b60408051918252519081900360200190f35b34801561028457600080fd5b506102ab6004803603602081101561029b57600080fd5b50356001600160a01b03166108ea565b005b3480156102b957600080fd5b506102ab600480360360208110156102d057600080fd5b5035610cf8565b3480156102e357600080fd5b506102ab600480360360208110156102fa57600080fd5b81019060208101813564010000000081111561031557600080fd5b82018360208201111561032757600080fd5b8035906020019184602083028401116401000000008311171561034957600080fd5b509092509050610d04565b34801561036057600080fd5b506102ab6004803603604081101561037757600080fd5b81019060208101813564010000000081111561039257600080fd5b8201836020820111156103a457600080fd5b803590602001918460208302840111640100000000831117156103c657600080fd5b9193909290916020810190356401000000008111156103e457600080fd5b8201836020820111156103f657600080fd5b8035906020019184602083028401116401000000008311171561041857600080fd5b509092509050610d44565b34801561042f57600080fd5b5061044d6004803603602081101561044657600080fd5b50356110d3565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b34801561049657600080fd5b506104bd600480360360208110156104ad57600080fd5b50356001600160a01b0316611129565b604080519115158252519081900360200190f35b3480156104dd57600080fd5b506102ab61113e565b3480156104f257600080fd5b5061021c6004803603602081101561050957600080fd5b50356001600160a01b0316611149565b34801561052557600080fd5b506104bd61121a565b34801561053a57600080fd5b506102ab611228565b34801561054f57600080fd5b506102ab611231565b34801561056457600080fd5b506102666112cf565b34801561057957600080fd5b506105826112d5565b60408051938452602084019290925282820152519081900360600190f35b3480156105ac57600080fd5b50610266600480360360608110156105c357600080fd5b508035906001600160a01b0360208201351690604001356112e3565b3480156105eb57600080fd5b506102ab6116b0565b34801561060057600080fd5b506102ab61174c565b34801561061557600080fd5b506102ab6004803603602081101561062c57600080fd5b50356001600160a01b0316611c12565b34801561064857600080fd5b506104bd611c5f565b34801561065d57600080fd5b506102ab611c68565b34801561067257600080fd5b506102ab6004803603602081101561068957600080fd5b50356001600160a01b0316611d02565b3480156106a557600080fd5b50610266611d4f565b3480156106ba57600080fd5b506102ab611d55565b3480156106cf57600080fd5b506102ab611dee565b6102ab611e89565b3480156106ec57600080fd5b506104bd611f01565b34801561070157600080fd5b506102ab6004803603602081101561071857600080fd5b50356001600160a01b0316611f0a565b34801561073457600080fd5b506102ab6004803603604081101561074b57600080fd5b5080359060200135611f57565b34801561076457600080fd5b506104bd6004803603602081101561077b57600080fd5b50356001600160a01b03166120c3565b34801561079757600080fd5b506102ab600480360360208110156107ae57600080fd5b50356120d0565b3480156107c157600080fd5b506102ab600480360360608110156107d857600080fd5b50803590602081013590604001356120d9565b3480156107f757600080fd5b506102ab612285565b60008060008060008561081281612448565b610855576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b60006001888154811061086457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661093a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff16610991576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b0381166109e4576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a2c5760405162461bcd60e51b8152600401808060200182810382526032815260200180612fba6032913960400191505060405180910390fd5b81610a368161244f565b610a87576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b115750506011546025546026546001600160a01b0390921692509060019060ff1615610aff5760405162461bcd60e51b815260040180806020018281038252602281526020018061302f6022913960400191505060405180910390fd5b6026805460ff19166001179055610c4e565b6017546001600160a01b0387811691161415610b945750506017546027546028546001600160a01b0390921692509060029060ff1615610b825760405162461bcd60e51b81526004018080602001828103825260238152602001806131376023913960400191505060405180910390fd5b6028805460ff19166001179055610c4e565b601d546001600160a01b0387811691161415610c17575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c055760405162461bcd60e51b81526004018080602001828103825260228152602001806130906022913960400191505060405180910390fd5b602a805460ff19166001179055610c4e565b60405162461bcd60e51b8152600401808060200182810382526043815260200180612fec6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610cd757600080fd5b505af1158015610ceb573d6000803e3d6000fd5b5050505050505050505050565b610d0181612496565b50565b610d408282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125d292505050565b5050565b600e5460ff16610d92576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610d9b336120c3565b610dd65760405162461bcd60e51b815260040180806020018281038252602b815260200180612f3b602b913960400191505060405180910390fd5b828114610e145760405162461bcd60e51b81526004018080602001828103825260338152602001806130b26033913960400191505060405180910390fd5b6002548314610e545760405162461bcd60e51b815260040180806020018281038252603f815260200180613051603f913960400191505060405180910390fd5b600060025411610eab576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f055760405162461bcd60e51b8152600401808060200182810382526022815260200180612f196022913960400191505060405180910390fd5b60005b600254811015611073576000868683818110610f2057fe5b9050602002013590506000858584818110610f3757fe5b9050602002013560ff169050610f4c82612448565b610f8f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610f9882612602565b610fe0576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b610fe981612696565b61102a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061103957fe5b906000526020600020906006020190506110638260ff16826005015461236690919063ffffffff16565b6005909101555050600101610f08565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b600181815481106110e357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b60006111366004836126a2565b90505b919050565b61114733612709565b565b6000808080806001600160a01b0386166111a1576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b61114733612739565b600354610100900460ff1615611283576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61128c33611129565b6112c75760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612776565b60245481565b600f54601554601b54909192565b60035460009060ff16611336576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b031916611398576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166113f3576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611463576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb90920191909155825491929091839081106115cb57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461165c91612366565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff16611700576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b61170933611129565b6117445760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476127c6565b60035460ff161561179b576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156117ed576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff161561183a576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61184333611129565b61187e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b60215460ff16156118cf576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b60006002541161191c576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b611924612ec2565b61192c612ec2565b611934612ec2565b61193c612ec2565b60005b600154811015611a27576001818154811061195657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a08201529550806119ce57508160a001518560a00151105b156119d857611a1f565b8360a001518560a0015111156119f2578493929150611a1f565b8260a001518560a001511115611a0b5784929150611a1f565b8160a001518560a001511115611a1f578491505b60010161193f565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611c1b33611129565b611c565760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612806565b600e5460ff1690565b600e5460ff16611cb6576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611cbf33611129565b611cfa5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612997565b611d0b33611129565b611d465760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612709565b60225481565b600e5460ff1615611da2576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611dab33611129565b611de65760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b6111476129d7565b60035460ff1615611e3d576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611e4633611129565b611e815760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612a21565b60003411611ec85760405162461bcd60e51b8152600401808060200182810382526021815260200180612ef86021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b611f1333611129565b611f4e5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b610d0181612a6b565b81611f6181612448565b611fa4576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b82611fae81612602565b611ff6576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612049576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061205857fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111366005836126a2565b610d0181612ae2565b6120e233611129565b61211d5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b602b5460ff1615612175576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b600061218b826121858686612366565b90612366565b9050478111156121cc5760405162461bcd60e51b81526004018080602001828103825260308152602001806131076030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b600354610100900460ff166122d8576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6122e133611129565b61231c5760405162461bcd60e51b8152600401808060200182810382526033815260200180612f666033913960400191505060405180910390fd5b611147612bbd565b61232f6004826123c7565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156123c0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6123d182826126a2565b15612423576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061247b57506017546001600160a01b038381169116145b80611136575050601d546001600160a01b0390811691161490565b806124a081612448565b6124e3576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816124ed81612602565b15612537576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061254657fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125799190612366565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610d40576125fa8282815181106125ed57fe5b6020026020010151612ae2565b6001016125d5565b600061260d82612448565b61261957506000611139565b60006001838154811061262857fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166126e95760405162461bcd60e51b81526004018080602001828103825260228152602001806130e56022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61271281612c08565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61274281612c45565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a54612770906001612c87565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61280f81612cc9565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612a7481612324565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461277091612366565b80612aec81612448565b612b2f576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612b3981612602565b612b81576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612b9057fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612579906001612c87565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612c1181612d40565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612c3f906001612c87565b60075550565b612c50600482612d82565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612de9565b612cd281612e80565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612c3f91612366565b612d4b600582612d82565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612d8c82826126a2565b612dc75760405162461bcd60e51b8152600401808060200182810382526021815260200180612f996021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612e785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e3d578181015183820152602001612e25565b50505050905090810190601f168015612e6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612e8b6005826123c7565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220e32bda6b0d1a14af7f7e5458be4fececb72320d5bc94fe828921668964ece24964736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a264697066735822122050eaa38f36ec7bbcc0266f4d782eb2b6528053e08e0dadd403b33509fef8ba2064736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "396:2576:6:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "396:2576:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:171;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2510:171:6;;:::i;:::-;;;;-1:-1:-1;;;;;2510:171:6;;;;;;;;;;;;;;2825:145;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2825:145:6;;:::i;1470:627::-;;;;;;;;;;;;;;;;-1:-1:-1;1470:627:6;;;;;;;:::i;2246:122::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:171;2577:7;2609:25;;2604:30;;2596:39;;;;;;2652:18;2671:2;2652:22;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2652:22:6;;2510:171;-1:-1:-1;;2510:171:6:o;2825:145::-;2915:7;2900:4;;2915:7;968;;;-1:-1:-1;;;;;;968:12:6;960:55;;;;;-1:-1:-1;;;960:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2941:22:6::1;::::0;;;:16:::1;:22;::::0;;;;;-1:-1:-1;;;;;2941:22:6::1;::::0;2825:145::o;1470:627::-;1647:7;1590:4;;1647:7;968;;;-1:-1:-1;;;;;;968:12:6;960:55;;;;;-1:-1:-1;;;960:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;1194:1:::1;1160:22:::0;;;:16:::1;:22;::::0;;;;;1624:4;;-1:-1:-1;;;;;1160:22:6::1;:36:::0;1152:78:::1;;;::::0;;-1:-1:-1;;;1152:78:6;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;1755:10:::2;1768:18:::0;:25:::2;;;;1755:38;;1803:20;1848:2;1852:4;1858:11;1871:10;1834:48;;;;;:::i;:::-;::::0;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;-1:-1:-1;;;;;1834:48:6;;::::2;::::0;;;;;;;;;;;;-1:-1:-1;1834:48:6::2;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;1893:18:6::2;:37:::0;;::::2;::::0;;::::2;::::0;;;;;::::2;::::0;;-1:-1:-1;;;;;1893:37:6;::::2;-1:-1:-1::0;;;;;;1893:37:6;;::::2;::::0;::::2;::::0;;;1940:22;;;1893:37:::2;1940:22:::0;;;;;;;;:37;;;;::::2;::::0;::::2;::::0;;1992:69;;;;;;;::::2;::::0;;;;;;;;;;;;;2050:10:::2;1992:69:::0;;;;;;1803:80;;-1:-1:-1;1992:69:6::2;::::0;;;;;;;;::::2;2078:12:::0;1470:627;-1:-1:-1;;;;;;1470:627:6:o;2246:122::-;2308:16;2343:18;2336:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2336:25:6;;;;;;;;;;;;;;;;;;;;;;;2246:122;:::o;-1:-1:-1:-;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\n\nimport \"../core/Hackathon.sol\";\n\n/**\n @notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n @dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.\n */\ncontract HackathonFactory {\n using SafeMath for uint256;\n\n address[] private deployedHackathons;\n mapping(bytes32 => address) private hackathonsByName;\n\n /// @dev emitted when a new Hackathon contract is deployed.\n event NewHackathonContract(uint256 id, bytes32 name, bytes32 description, address contractAddress, address creator);\n // event TeamContractDeployed(uint256 id, bytes32 name, address contractAddress, address creator);\n\n /// @dev Modifier to check if hackathon name is not empty.\n modifier notEmptyName(bytes32 name) {\n require(name[0] != 0, \"Hackathon name cannot be empty\");\n _;\n }\n\n /// @dev Modifier to check if hackathon name is unique.\n modifier uniqueHackathonName(bytes32 name) {\n require(hackathonsByName[name] == address(0), \"Hackathon name already in use\");\n _;\n }\n\n /**\n @notice Creates and deploys a new Hackathon contract.\n @param name Unique hackathon's name.\n @param description A short description for the Hackathon.\n @return The new contract's address.\n */\n function createHackathonContract(bytes32 name, bytes32 description)\n public\n payable\n notEmptyName(name)\n uniqueHackathonName(name)\n returns (address)\n {\n // TODO: insert check if the sent ether is enough to cover the car asset ...\n uint256 id = deployedHackathons.length;\n address newHackathon = address(new Hackathon(id, name, description, msg.sender));\n deployedHackathons.push(newHackathon);\n hackathonsByName[name] = newHackathon;\n emit NewHackathonContract(id, name, description, newHackathon, msg.sender);\n return newHackathon;\n }\n\n /**\n @notice Get a list with the addresses of the deployed contracts.\n @return List of deployed contract's addresses \n */\n function getDeployedHackathonContracts() public view returns (address[] memory) {\n return deployedHackathons;\n }\n\n /**\n @notice Get a contract address with the internal id.\n @return An address representing a deployed contract\n */\n function getHackathonContractById(uint256 id) public view returns (address) {\n require(id < deployedHackathons.length);\n return deployedHackathons[id];\n }\n\n /**\n @notice Get a contract address with the internal name.\n @return An address representing a deployed contract\n */\n function getHackathonContractByName(bytes32 name) public view notEmptyName(name) returns (address) {\n return hackathonsByName[name];\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol", "exportedSymbols": { - "HackathonFactory": [2407] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "HackathonFactory": [2504], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2408, + "id": 2505, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2242, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2337, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:6" + "src": "40:31:6" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2243, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2338, "nodeType": "ImportDirective", - "scope": 2408, - "sourceUnit": 4216, - "src": "25:59:6", + "scope": 2505, + "sourceUnit": 3815, + "src": "73:51:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "file": "../core/Hackathon.sol", - "id": 2244, + "id": 2339, "nodeType": "ImportDirective", - "scope": 2408, - "sourceUnit": 2090, - "src": "86:31:6", + "scope": 2505, + "sourceUnit": 2175, + "src": "126:31:6", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [], - "contractDependencies": [2089], + "contractDependencies": [2174], "contractKind": "contract", - "documentation": "@notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "documentation": { + "id": 2340, + "nodeType": "StructuredDocumentation", + "src": "159:236:6", + "text": "@notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability." + }, "fullyImplemented": true, - "id": 2407, - "linearizedBaseContracts": [2407], + "id": 2504, + "linearizedBaseContracts": [2504], "name": "HackathonFactory", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2247, + "id": 2343, "libraryName": { - "contractScope": null, - "id": 2245, + "id": 2341, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "394:8:6", + "referencedDeclaration": 3814, + "src": "434:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "388:27:6", + "src": "428:27:6", "typeName": { - "id": 2246, + "id": 2342, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "407:7:6", + "src": "447:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -205,11 +216,12 @@ }, { "constant": false, - "id": 2250, + "id": 2346, + "mutability": "mutable", "name": "deployedHackathons", "nodeType": "VariableDeclaration", - "scope": 2407, - "src": "421:36:6", + "scope": 2504, + "src": "461:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -218,35 +230,34 @@ }, "typeName": { "baseType": { - "id": 2248, + "id": 2344, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:6", + "src": "461:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2249, - "length": null, + "id": 2345, "nodeType": "ArrayTypeName", - "src": "421:9:6", + "src": "461:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "private" }, { "constant": false, - "id": 2254, + "id": 2350, + "mutability": "mutable", "name": "hackathonsByName", "nodeType": "VariableDeclaration", - "scope": 2407, - "src": "463:52:6", + "scope": 2504, + "src": "503:52:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -254,28 +265,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 2253, + "id": 2349, "keyType": { - "id": 2251, + "id": 2347, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "471:7:6", + "src": "511:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "463:27:6", + "src": "503:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 2252, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "482:7:6", + "src": "522:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -283,27 +294,32 @@ } } }, - "value": null, "visibility": "private" }, { "anonymous": false, - "documentation": "@dev emitted when a new Hackathon contract is deployed.", - "id": 2266, + "documentation": { + "id": 2351, + "nodeType": "StructuredDocumentation", + "src": "562:59:6", + "text": "@dev emitted when a new Hackathon contract is deployed." + }, + "id": 2363, "name": "NewHackathonContract", "nodeType": "EventDefinition", "parameters": { - "id": 2265, + "id": 2362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2256, + "id": 2353, "indexed": false, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "613:10:6", + "scope": 2363, + "src": "653:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -311,26 +327,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 2352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "613:7:6", + "src": "653:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2258, + "id": 2355, "indexed": false, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "625:12:6", + "scope": 2363, + "src": "665:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -338,26 +354,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2257, + "id": 2354, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "625:7:6", + "src": "665:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2260, + "id": 2357, "indexed": false, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "639:19:6", + "scope": 2363, + "src": "679:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -365,26 +381,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2259, + "id": 2356, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "639:7:6", + "src": "679:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2262, + "id": 2359, "indexed": false, + "mutability": "mutable", "name": "contractAddress", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "660:23:6", + "scope": 2363, + "src": "700:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -392,27 +408,27 @@ "typeString": "address" }, "typeName": { - "id": 2261, + "id": 2358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:6", + "src": "700:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2264, + "id": 2361, "indexed": false, + "mutability": "mutable", "name": "creator", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "685:15:6", + "scope": 2363, + "src": "725:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -420,73 +436,66 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 2360, "name": "address", "nodeType": "ElementaryTypeName", - "src": "685:7:6", + "src": "725:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "612:89:6" + "src": "652:89:6" }, - "src": "586:116:6" + "src": "626:116:6" }, { "body": { - "id": 2280, + "id": 2378, "nodeType": "Block", - "src": "910:83:6", + "src": "950:83:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 2275, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2271, + "id": 2369, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "928:4:6", + "referencedDeclaration": 2366, + "src": "968:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2273, + "id": 2371, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2272, + "id": 2370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "933:1:6", - "subdenomination": null, + "src": "973:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -498,7 +507,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "928:7:6", + "src": "968:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -507,41 +516,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2274, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "939:1:6", - "subdenomination": null, + "src": "979:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "928:12:6", + "src": "968:12:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4861636b6174686f6e206e616d652063616e6e6f7420626520656d707479", - "id": 2276, + "id": 2374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "942:32:6", - "subdenomination": null, + "src": "982:32:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1d796754286b8c951e99cbecc6e2b81eed032674f420c58842c313fe31d4de", "typeString": "literal_string \"Hackathon name cannot be empty\"" @@ -560,18 +565,18 @@ "typeString": "literal_string \"Hackathon name cannot be empty\"" } ], - "id": 2270, + "id": 2368, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "920:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "960:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2277, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": false, @@ -579,38 +584,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "920:55:6", + "src": "960:55:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2278, + "id": 2376, "nodeType": "ExpressionStatement", - "src": "920:55:6" + "src": "960:55:6" }, { - "id": 2279, + "id": 2377, "nodeType": "PlaceholderStatement", - "src": "985:1:6" + "src": "1025:1:6" } ] }, - "documentation": "@dev Modifier to check if hackathon name is not empty.", - "id": 2281, + "documentation": { + "id": 2364, + "nodeType": "StructuredDocumentation", + "src": "851:58:6", + "text": "@dev Modifier to check if hackathon name is not empty." + }, + "id": 2379, "name": "notEmptyName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2269, + "id": 2367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2268, + "id": 2366, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2281, - "src": "896:12:6", + "scope": 2379, + "src": "936:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -618,69 +630,64 @@ "typeString": "bytes32" }, "typeName": { - "id": 2267, + "id": 2365, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "896:7:6", + "src": "936:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "895:14:6" + "src": "935:14:6" }, - "src": "874:119:6", + "src": "914:119:6", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2297, + "id": 2397, "nodeType": "Block", - "src": "1102:106:6", + "src": "1142:106:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2292, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2286, + "id": 2385, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:16:6", + "referencedDeclaration": 2350, + "src": "1160:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2288, + "id": 2387, "indexExpression": { - "argumentTypes": null, - "id": 2287, + "id": 2386, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2283, - "src": "1137:4:6", + "referencedDeclaration": 2382, + "src": "1177:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -691,7 +698,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:22:6", + "src": "1160:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -700,20 +707,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2290, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1154:1:6", - "subdenomination": null, + "src": "1194:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -728,20 +732,26 @@ "typeString": "int_const 0" } ], - "id": 2289, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1146:7:6", + "src": "1186:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1186:7:6", + "typeDescriptions": {} + } }, - "id": 2291, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": true, @@ -749,30 +759,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1146:10:6", + "src": "1186:10:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1120:36:6", + "src": "1160:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4861636b6174686f6e206e616d6520616c726561647920696e20757365", - "id": 2293, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1158:31:6", - "subdenomination": null, + "src": "1198:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9e72fd99c68d653c342089181ac06c06bebe77909ef7ac701b02db600f815257", "typeString": "literal_string \"Hackathon name already in use\"" @@ -791,18 +800,18 @@ "typeString": "literal_string \"Hackathon name already in use\"" } ], - "id": 2285, + "id": 2384, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1112:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1152:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2294, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": false, @@ -810,38 +819,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1112:78:6", + "src": "1152:78:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2295, + "id": 2395, "nodeType": "ExpressionStatement", - "src": "1112:78:6" + "src": "1152:78:6" }, { - "id": 2296, + "id": 2396, "nodeType": "PlaceholderStatement", - "src": "1200:1:6" + "src": "1240:1:6" } ] }, - "documentation": "@dev Modifier to check if hackathon name is unique.", - "id": 2298, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "1039:55:6", + "text": "@dev Modifier to check if hackathon name is unique." + }, + "id": 2398, "name": "uniqueHackathonName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2284, + "id": 2383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2283, + "id": 2382, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "1088:12:6", + "scope": 2398, + "src": "1128:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -849,153 +865,41 @@ "typeString": "bytes32" }, "typeName": { - "id": 2282, + "id": 2381, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1088:7:6", + "src": "1128:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1087:14:6" + "src": "1127:14:6" }, - "src": "1059:149:6", + "src": "1099:149:6", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2361, + "id": 2456, "nodeType": "Block", - "src": "1620:492:6", + "src": "1660:437:6", "statements": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2314, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1723:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "6672616e636973", - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1731:9:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_828e98e646107a98969689b6132c40f9bec33f0aae1cb9fab45105ff26ff8275", - "typeString": "literal_string \"francis\"" - }, - "value": "francis" - }, - "src": "1723:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e616d6520697320696e76616c6964", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1742:17:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6fbfc72a753a7e88bb11f438da7cd92f55d7151a73891b7926d2e9b20820d9cd", - "typeString": "literal_string \"name is invalid\"" - }, - "value": "name is invalid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6fbfc72a753a7e88bb11f438da7cd92f55d7151a73891b7926d2e9b20820d9cd", - "typeString": "literal_string \"name is invalid\"" - } - ], - "id": 2313, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1715:45:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2319, - "nodeType": "ExpressionStatement", - "src": "1715:45:6" - }, - { - "assignments": [2321], + "assignments": [2415], "declarations": [ { "constant": false, - "id": 2321, + "id": 2415, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "1770:10:6", + "scope": 2456, + "src": "1755:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1003,62 +907,59 @@ "typeString": "uint256" }, "typeName": { - "id": 2320, + "id": 2414, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1770:7:6", + "src": "1755:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 2324, + "id": 2418, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2322, + "id": 2416, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "1783:18:6", + "referencedDeclaration": 2346, + "src": "1768:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2323, + "id": 2417, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1783:25:6", + "src": "1768:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1770:38:6" + "src": "1755:38:6" }, { - "assignments": [2326], + "assignments": [2420], "declarations": [ { "constant": false, - "id": 2326, + "id": 2420, + "mutability": "mutable", "name": "newHackathon", "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "1818:20:6", + "scope": 2456, + "src": "1803:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1066,90 +967,81 @@ "typeString": "address" }, "typeName": { - "id": 2325, + "id": 2419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:6", + "src": "1803:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 2337, + "id": 2432, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2330, + "id": 2425, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "1863:2:6", + "referencedDeclaration": 2415, + "src": "1848:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2331, + "id": 2426, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1867:4:6", + "referencedDeclaration": 2401, + "src": "1852:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2332, + "id": 2427, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, - "src": "1873:11:6", + "referencedDeclaration": 2403, + "src": "1858:11:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2333, + "id": 2428, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1886:3:6", + "referencedDeclaration": 4294967281, + "src": "1871:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2334, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1886:10:6", + "src": "1871:10:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1175,31 +1067,30 @@ "typeString": "address payable" } ], - "id": 2329, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1849:13:6", + "src": "1834:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_contract$_Hackathon_$2089_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_contract$_Hackathon_$2174_$", "typeString": "function (uint256,bytes32,bytes32,address) returns (contract Hackathon)" }, "typeName": { - "contractScope": null, - "id": 2328, + "id": 2423, "name": "Hackathon", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "1853:9:6", + "referencedDeclaration": 2174, + "src": "1838:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } }, - "id": 2335, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": false, @@ -1207,9 +1098,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1849:48:6", + "src": "1834:48:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -1217,24 +1109,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 2327, + "id": 2422, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1841:7:6", + "src": "1826:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:6", + "typeDescriptions": {} + } }, - "id": 2336, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -1242,27 +1140,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1841:57:6", + "src": "1826:57:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1818:80:6" + "src": "1803:80:6" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2341, + "id": 2436, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1932:12:6", + "referencedDeclaration": 2420, + "src": "1917:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1277,33 +1174,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 2338, + "id": 2433, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "1908:18:6", + "referencedDeclaration": 2346, + "src": "1893:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2340, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1908:23:6", + "src": "1893:23:6", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2342, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, @@ -1311,48 +1206,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1908:37:6", + "src": "1893:37:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2343, + "id": 2438, "nodeType": "ExpressionStatement", - "src": "1908:37:6" + "src": "1893:37:6" }, { "expression": { - "argumentTypes": null, - "id": 2348, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2344, + "id": 2439, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1955:16:6", + "referencedDeclaration": 2350, + "src": "1940:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2346, + "id": 2441, "indexExpression": { - "argumentTypes": null, - "id": 2345, + "id": 2440, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1972:4:6", + "referencedDeclaration": 2401, + "src": "1957:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1363,7 +1255,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1955:22:6", + "src": "1940:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1372,108 +1264,99 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 2347, + "id": 2442, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1980:12:6", + "referencedDeclaration": 2420, + "src": "1965:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1955:37:6", + "src": "1940:37:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2349, + "id": 2444, "nodeType": "ExpressionStatement", - "src": "1955:37:6" + "src": "1940:37:6" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2351, + "id": 2446, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "2028:2:6", + "referencedDeclaration": 2415, + "src": "2013:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2352, + "id": 2447, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "2032:4:6", + "referencedDeclaration": 2401, + "src": "2017:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2353, + "id": 2448, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, - "src": "2038:11:6", + "referencedDeclaration": 2403, + "src": "2023:11:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2354, + "id": 2449, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "2051:12:6", + "referencedDeclaration": 2420, + "src": "2036:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2355, + "id": 2450, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2065:3:6", + "referencedDeclaration": 4294967281, + "src": "2050:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2356, + "id": 2451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2065:10:6", + "src": "2050:10:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1503,18 +1386,18 @@ "typeString": "address payable" } ], - "id": 2350, + "id": 2445, "name": "NewHackathonContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "2007:20:6", + "referencedDeclaration": 2363, + "src": "1992:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256,bytes32,bytes32,address,address)" } }, - "id": 2357, + "id": 2452, "isConstant": false, "isLValue": false, "isPure": false, @@ -1522,122 +1405,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2007:69:6", + "src": "1992:69:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2358, + "id": 2453, "nodeType": "EmitStatement", - "src": "2002:74:6" + "src": "1987:74:6" }, { "expression": { - "argumentTypes": null, - "id": 2359, + "id": 2454, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "2093:12:6", + "referencedDeclaration": 2420, + "src": "2078:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2312, - "id": 2360, + "functionReturnParameters": 2413, + "id": 2455, "nodeType": "Return", - "src": "2086:19:6" + "src": "2071:19:6" } ] }, - "documentation": "@notice Creates and deploys a new Hackathon contract.\n@param name Unique hackathon's name.\n@param description A short description for the Hackathon.\n@return The new contract's address.", - "id": 2362, + "documentation": { + "id": 2399, + "nodeType": "StructuredDocumentation", + "src": "1254:211:6", + "text": "@notice Creates and deploys a new Hackathon contract.\n@param name Unique hackathon's name.\n@param description A short description for the Hackathon.\n@return The new contract's address." + }, + "functionSelector": "a3ea17e6", + "id": 2457, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2305, + "id": 2406, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1550:4:6", + "referencedDeclaration": 2401, + "src": "1590:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2306, + "id": 2407, "modifierName": { - "argumentTypes": null, - "id": 2304, + "id": 2405, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "1537:12:6", + "referencedDeclaration": 2379, + "src": "1577:12:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1537:18:6" + "src": "1577:18:6" }, { "arguments": [ { - "argumentTypes": null, - "id": 2308, + "id": 2409, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1584:4:6", + "referencedDeclaration": 2401, + "src": "1624:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2309, + "id": 2410, "modifierName": { - "argumentTypes": null, - "id": 2307, + "id": 2408, "name": "uniqueHackathonName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "1564:19:6", + "referencedDeclaration": 2398, + "src": "1604:19:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1564:25:6" + "src": "1604:25:6" } ], "name": "createHackathonContract", "nodeType": "FunctionDefinition", "parameters": { - "id": 2303, + "id": 2404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2300, + "id": 2401, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1463:12:6", + "scope": 2457, + "src": "1503:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1645,25 +1531,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 2299, + "id": 2400, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1463:7:6", + "src": "1503:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2302, + "id": 2403, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1477:19:6", + "scope": 2457, + "src": "1517:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1671,32 +1557,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2301, + "id": 2402, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1477:7:6", + "src": "1517:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1462:35:6" + "src": "1502:35:6" }, "returnParameters": { - "id": 2312, + "id": 2413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2311, + "id": 2412, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1607:7:6", + "scope": 2457, + "src": "1647:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1704,79 +1590,84 @@ "typeString": "address" }, "typeName": { - "id": 2310, + "id": 2411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1607:7:6", + "src": "1647:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1606:9:6" + "src": "1646:9:6" }, - "scope": 2407, - "src": "1430:682:6", + "scope": 2504, + "src": "1470:627:6", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2370, + "id": 2466, "nodeType": "Block", - "src": "2341:42:6", + "src": "2326:42:6", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2368, + "id": 2464, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2358:18:6", + "referencedDeclaration": 2346, + "src": "2343:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 2367, - "id": 2369, + "functionReturnParameters": 2463, + "id": 2465, "nodeType": "Return", - "src": "2351:25:6" + "src": "2336:25:6" } ] }, - "documentation": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses ", - "id": 2371, + "documentation": { + "id": 2458, + "nodeType": "StructuredDocumentation", + "src": "2103:138:6", + "text": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses " + }, + "functionSelector": "bc00a209", + "id": 2467, "implemented": true, "kind": "function", "modifiers": [], "name": "getDeployedHackathonContracts", "nodeType": "FunctionDefinition", "parameters": { - "id": 2363, + "id": 2459, "nodeType": "ParameterList", "parameters": [], - "src": "2299:2:6" + "src": "2284:2:6" }, "returnParameters": { - "id": 2367, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2366, + "id": 2462, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "2323:16:6", + "scope": 2467, + "src": "2308:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -1785,66 +1676,61 @@ }, "typeName": { "baseType": { - "id": 2364, + "id": 2460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2323:7:6", + "src": "2308:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2365, - "length": null, + "id": 2461, "nodeType": "ArrayTypeName", - "src": "2323:9:6", + "src": "2308:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2322:18:6" + "src": "2307:18:6" }, - "scope": 2407, - "src": "2261:122:6", + "scope": 2504, + "src": "2246:122:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2390, + "id": 2486, "nodeType": "Block", - "src": "2601:109:6", + "src": "2586:95:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2382, + "id": 2479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2379, + "id": 2476, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2619:2:6", + "referencedDeclaration": 2470, + "src": "2604:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1853,57 +1739,36 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2380, + "id": 2477, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2624:18:6", + "referencedDeclaration": 2346, + "src": "2609:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2381, + "id": 2478, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2624:25:6", + "src": "2609:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2619:30:6", + "src": "2604:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206964", - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2651:12:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2c270178c73806a8dbbf8aad0f9eb77e61abe0b7a93239d42f99fae572eed526", - "typeString": "literal_string \"invalid id\"" - }, - "value": "invalid id" } ], "expression": { @@ -1911,24 +1776,20 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2c270178c73806a8dbbf8aad0f9eb77e61abe0b7a93239d42f99fae572eed526", - "typeString": "literal_string \"invalid id\"" } ], - "id": 2378, + "id": 2475, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2611:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2596:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2384, + "id": 2480, "isConstant": false, "isLValue": false, "isPure": false, @@ -1936,41 +1797,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2611:53:6", + "src": "2596:39:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2385, + "id": 2481, "nodeType": "ExpressionStatement", - "src": "2611:53:6" + "src": "2596:39:6" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2386, + "id": 2482, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2681:18:6", + "referencedDeclaration": 2346, + "src": "2652:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2388, + "id": 2484, "indexExpression": { - "argumentTypes": null, - "id": 2387, + "id": 2483, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2700:2:6", + "referencedDeclaration": 2470, + "src": "2671:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1981,37 +1840,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2681:22:6", + "src": "2652:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2377, - "id": 2389, + "functionReturnParameters": 2474, + "id": 2485, "nodeType": "Return", - "src": "2674:29:6" + "src": "2645:29:6" } ] }, - "documentation": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract", - "id": 2391, + "documentation": { + "id": 2468, + "nodeType": "StructuredDocumentation", + "src": "2374:131:6", + "text": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract" + }, + "functionSelector": "2208d92a", + "id": 2487, "implemented": true, "kind": "function", "modifiers": [], "name": "getHackathonContractById", "nodeType": "FunctionDefinition", "parameters": { - "id": 2374, + "id": 2471, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2373, + "id": 2470, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "2559:10:6", + "scope": 2487, + "src": "2544:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2019,32 +1885,32 @@ "typeString": "uint256" }, "typeName": { - "id": 2372, + "id": 2469, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2559:7:6", + "src": "2544:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2558:12:6" + "src": "2543:12:6" }, "returnParameters": { - "id": 2377, + "id": 2474, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2376, + "id": 2473, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "2592:7:6", + "scope": 2487, + "src": "2577:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2052,59 +1918,55 @@ "typeString": "address" }, "typeName": { - "id": 2375, + "id": 2472, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2592:7:6", + "src": "2577:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2591:9:6" + "src": "2576:9:6" }, - "scope": 2407, - "src": "2525:185:6", + "scope": 2504, + "src": "2510:171:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2405, + "id": 2502, "nodeType": "Block", - "src": "2953:46:6", + "src": "2924:46:6", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2401, + "id": 2498, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2970:16:6", + "referencedDeclaration": 2350, + "src": "2941:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2403, + "id": 2500, "indexExpression": { - "argumentTypes": null, - "id": 2402, + "id": 2499, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "2987:4:6", + "referencedDeclaration": 2490, + "src": "2958:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2115,71 +1977,76 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2970:22:6", + "src": "2941:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2400, - "id": 2404, + "functionReturnParameters": 2497, + "id": 2501, "nodeType": "Return", - "src": "2963:29:6" + "src": "2934:29:6" } ] }, - "documentation": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract", - "id": 2406, + "documentation": { + "id": 2488, + "nodeType": "StructuredDocumentation", + "src": "2687:133:6", + "text": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract" + }, + "functionSelector": "34ab9484", + "id": 2503, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2396, + "id": 2493, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "2929:4:6", + "referencedDeclaration": 2490, + "src": "2900:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2397, + "id": 2494, "modifierName": { - "argumentTypes": null, - "id": 2395, + "id": 2492, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "2916:12:6", + "referencedDeclaration": 2379, + "src": "2887:12:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "2916:18:6" + "src": "2887:18:6" } ], "name": "getHackathonContractByName", "nodeType": "FunctionDefinition", "parameters": { - "id": 2394, + "id": 2491, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2393, + "id": 2490, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "2890:12:6", + "scope": 2503, + "src": "2861:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2187,32 +2054,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2392, + "id": 2489, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2890:7:6", + "src": "2861:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "2889:14:6" + "src": "2860:14:6" }, "returnParameters": { - "id": 2400, + "id": 2497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2399, + "id": 2496, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "2944:7:6", + "scope": 2503, + "src": "2915:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2220,103 +2087,118 @@ "typeString": "address" }, "typeName": { - "id": 2398, + "id": 2495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2944:7:6", + "src": "2915:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2943:9:6" + "src": "2914:9:6" }, - "scope": 2407, - "src": "2854:145:6", + "scope": 2504, + "src": "2825:145:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2408, - "src": "356:2645:6" + "scope": 2505, + "src": "396:2576:6" } ], - "src": "0:3002:6" + "src": "40:2933:6" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/factory/HackathonFactory.sol", "exportedSymbols": { - "HackathonFactory": [2407] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "HackathonFactory": [2504], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2408, + "id": 2505, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2242, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2337, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:6" + "src": "40:31:6" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2243, + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", + "file": "@openzeppelin/contracts/math/SafeMath.sol", + "id": 2338, "nodeType": "ImportDirective", - "scope": 2408, - "sourceUnit": 4216, - "src": "25:59:6", + "scope": 2505, + "sourceUnit": 3815, + "src": "73:51:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "file": "../core/Hackathon.sol", - "id": 2244, + "id": 2339, "nodeType": "ImportDirective", - "scope": 2408, - "sourceUnit": 2090, - "src": "86:31:6", + "scope": 2505, + "sourceUnit": 2175, + "src": "126:31:6", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [], - "contractDependencies": [2089], + "contractDependencies": [2174], "contractKind": "contract", - "documentation": "@notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "documentation": { + "id": 2340, + "nodeType": "StructuredDocumentation", + "src": "159:236:6", + "text": "@notice A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.\n@dev TODO: use struct to keep record of hackathon names, and allow implementing upgradability." + }, "fullyImplemented": true, - "id": 2407, - "linearizedBaseContracts": [2407], + "id": 2504, + "linearizedBaseContracts": [2504], "name": "HackathonFactory", "nodeType": "ContractDefinition", "nodes": [ { - "id": 2247, + "id": 2343, "libraryName": { - "contractScope": null, - "id": 2245, + "id": 2341, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4215, - "src": "394:8:6", + "referencedDeclaration": 3814, + "src": "434:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4215", + "typeIdentifier": "t_contract$_SafeMath_$3814", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "388:27:6", + "src": "428:27:6", "typeName": { - "id": 2246, + "id": 2342, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "407:7:6", + "src": "447:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2325,11 +2207,12 @@ }, { "constant": false, - "id": 2250, + "id": 2346, + "mutability": "mutable", "name": "deployedHackathons", "nodeType": "VariableDeclaration", - "scope": 2407, - "src": "421:36:6", + "scope": 2504, + "src": "461:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2338,35 +2221,34 @@ }, "typeName": { "baseType": { - "id": 2248, + "id": 2344, "name": "address", "nodeType": "ElementaryTypeName", - "src": "421:7:6", + "src": "461:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2249, - "length": null, + "id": 2345, "nodeType": "ArrayTypeName", - "src": "421:9:6", + "src": "461:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "private" }, { "constant": false, - "id": 2254, + "id": 2350, + "mutability": "mutable", "name": "hackathonsByName", "nodeType": "VariableDeclaration", - "scope": 2407, - "src": "463:52:6", + "scope": 2504, + "src": "503:52:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2374,28 +2256,28 @@ "typeString": "mapping(bytes32 => address)" }, "typeName": { - "id": 2253, + "id": 2349, "keyType": { - "id": 2251, + "id": 2347, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "471:7:6", + "src": "511:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "463:27:6", + "src": "503:27:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" }, "valueType": { - "id": 2252, + "id": 2348, "name": "address", "nodeType": "ElementaryTypeName", - "src": "482:7:6", + "src": "522:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2403,27 +2285,32 @@ } } }, - "value": null, "visibility": "private" }, { "anonymous": false, - "documentation": "@dev emitted when a new Hackathon contract is deployed.", - "id": 2266, + "documentation": { + "id": 2351, + "nodeType": "StructuredDocumentation", + "src": "562:59:6", + "text": "@dev emitted when a new Hackathon contract is deployed." + }, + "id": 2363, "name": "NewHackathonContract", "nodeType": "EventDefinition", "parameters": { - "id": 2265, + "id": 2362, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2256, + "id": 2353, "indexed": false, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "613:10:6", + "scope": 2363, + "src": "653:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2431,26 +2318,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2255, + "id": 2352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "613:7:6", + "src": "653:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2258, + "id": 2355, "indexed": false, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "625:12:6", + "scope": 2363, + "src": "665:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2458,26 +2345,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2257, + "id": 2354, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "625:7:6", + "src": "665:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2260, + "id": 2357, "indexed": false, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "639:19:6", + "scope": 2363, + "src": "679:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2485,26 +2372,26 @@ "typeString": "bytes32" }, "typeName": { - "id": 2259, + "id": 2356, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "639:7:6", + "src": "679:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2262, + "id": 2359, "indexed": false, + "mutability": "mutable", "name": "contractAddress", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "660:23:6", + "scope": 2363, + "src": "700:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2512,27 +2399,27 @@ "typeString": "address" }, "typeName": { - "id": 2261, + "id": 2358, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:6", + "src": "700:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2264, + "id": 2361, "indexed": false, + "mutability": "mutable", "name": "creator", "nodeType": "VariableDeclaration", - "scope": 2266, - "src": "685:15:6", + "scope": 2363, + "src": "725:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2540,73 +2427,66 @@ "typeString": "address" }, "typeName": { - "id": 2263, + "id": 2360, "name": "address", "nodeType": "ElementaryTypeName", - "src": "685:7:6", + "src": "725:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "612:89:6" + "src": "652:89:6" }, - "src": "586:116:6" + "src": "626:116:6" }, { "body": { - "id": 2280, + "id": 2378, "nodeType": "Block", - "src": "910:83:6", + "src": "950:83:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, - "id": 2275, + "id": 2373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2271, + "id": 2369, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2268, - "src": "928:4:6", + "referencedDeclaration": 2366, + "src": "968:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2273, + "id": 2371, "indexExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2272, + "id": 2370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "933:1:6", - "subdenomination": null, + "src": "973:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2618,7 +2498,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "928:7:6", + "src": "968:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2627,41 +2507,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2274, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "939:1:6", - "subdenomination": null, + "src": "979:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "928:12:6", + "src": "968:12:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4861636b6174686f6e206e616d652063616e6e6f7420626520656d707479", - "id": 2276, + "id": 2374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "942:32:6", - "subdenomination": null, + "src": "982:32:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5e1d796754286b8c951e99cbecc6e2b81eed032674f420c58842c313fe31d4de", "typeString": "literal_string \"Hackathon name cannot be empty\"" @@ -2680,18 +2556,18 @@ "typeString": "literal_string \"Hackathon name cannot be empty\"" } ], - "id": 2270, + "id": 2368, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "920:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "960:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2277, + "id": 2375, "isConstant": false, "isLValue": false, "isPure": false, @@ -2699,38 +2575,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "920:55:6", + "src": "960:55:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2278, + "id": 2376, "nodeType": "ExpressionStatement", - "src": "920:55:6" + "src": "960:55:6" }, { - "id": 2279, + "id": 2377, "nodeType": "PlaceholderStatement", - "src": "985:1:6" + "src": "1025:1:6" } ] }, - "documentation": "@dev Modifier to check if hackathon name is not empty.", - "id": 2281, + "documentation": { + "id": 2364, + "nodeType": "StructuredDocumentation", + "src": "851:58:6", + "text": "@dev Modifier to check if hackathon name is not empty." + }, + "id": 2379, "name": "notEmptyName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2269, + "id": 2367, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2268, + "id": 2366, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2281, - "src": "896:12:6", + "scope": 2379, + "src": "936:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2738,69 +2621,64 @@ "typeString": "bytes32" }, "typeName": { - "id": 2267, + "id": 2365, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "896:7:6", + "src": "936:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "895:14:6" + "src": "935:14:6" }, - "src": "874:119:6", + "src": "914:119:6", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2297, + "id": 2397, "nodeType": "Block", - "src": "1102:106:6", + "src": "1142:106:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2292, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2286, + "id": 2385, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1120:16:6", + "referencedDeclaration": 2350, + "src": "1160:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2288, + "id": 2387, "indexExpression": { - "argumentTypes": null, - "id": 2287, + "id": 2386, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2283, - "src": "1137:4:6", + "referencedDeclaration": 2382, + "src": "1177:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2811,7 +2689,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1120:22:6", + "src": "1160:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2820,20 +2698,17 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 2290, + "id": 2390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1154:1:6", - "subdenomination": null, + "src": "1194:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -2848,20 +2723,26 @@ "typeString": "int_const 0" } ], - "id": 2289, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1146:7:6", + "src": "1186:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1186:7:6", + "typeDescriptions": {} + } }, - "id": 2291, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": true, @@ -2869,30 +2750,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1146:10:6", + "src": "1186:10:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1120:36:6", + "src": "1160:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4861636b6174686f6e206e616d6520616c726561647920696e20757365", - "id": 2293, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1158:31:6", - "subdenomination": null, + "src": "1198:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9e72fd99c68d653c342089181ac06c06bebe77909ef7ac701b02db600f815257", "typeString": "literal_string \"Hackathon name already in use\"" @@ -2911,18 +2791,18 @@ "typeString": "literal_string \"Hackathon name already in use\"" } ], - "id": 2285, + "id": 2384, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1112:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1152:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2294, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": false, @@ -2930,38 +2810,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1112:78:6", + "src": "1152:78:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2295, + "id": 2395, "nodeType": "ExpressionStatement", - "src": "1112:78:6" + "src": "1152:78:6" }, { - "id": 2296, + "id": 2396, "nodeType": "PlaceholderStatement", - "src": "1200:1:6" + "src": "1240:1:6" } ] }, - "documentation": "@dev Modifier to check if hackathon name is unique.", - "id": 2298, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "1039:55:6", + "text": "@dev Modifier to check if hackathon name is unique." + }, + "id": 2398, "name": "uniqueHackathonName", "nodeType": "ModifierDefinition", "parameters": { - "id": 2284, + "id": 2383, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2283, + "id": 2382, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2298, - "src": "1088:12:6", + "scope": 2398, + "src": "1128:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2969,153 +2856,41 @@ "typeString": "bytes32" }, "typeName": { - "id": 2282, + "id": 2381, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1088:7:6", + "src": "1128:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1087:14:6" + "src": "1127:14:6" }, - "src": "1059:149:6", + "src": "1099:149:6", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2361, + "id": 2456, "nodeType": "Block", - "src": "1620:492:6", + "src": "1660:437:6", "statements": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2314, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1723:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "6672616e636973", - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1731:9:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_828e98e646107a98969689b6132c40f9bec33f0aae1cb9fab45105ff26ff8275", - "typeString": "literal_string \"francis\"" - }, - "value": "francis" - }, - "src": "1723:17:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e616d6520697320696e76616c6964", - "id": 2317, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1742:17:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6fbfc72a753a7e88bb11f438da7cd92f55d7151a73891b7926d2e9b20820d9cd", - "typeString": "literal_string \"name is invalid\"" - }, - "value": "name is invalid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6fbfc72a753a7e88bb11f438da7cd92f55d7151a73891b7926d2e9b20820d9cd", - "typeString": "literal_string \"name is invalid\"" - } - ], - "id": 2313, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1715:45:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2319, - "nodeType": "ExpressionStatement", - "src": "1715:45:6" - }, - { - "assignments": [2321], + "assignments": [2415], "declarations": [ { "constant": false, - "id": 2321, + "id": 2415, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "1770:10:6", + "scope": 2456, + "src": "1755:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3123,62 +2898,59 @@ "typeString": "uint256" }, "typeName": { - "id": 2320, + "id": 2414, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1770:7:6", + "src": "1755:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 2324, + "id": 2418, "initialValue": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2322, + "id": 2416, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "1783:18:6", + "referencedDeclaration": 2346, + "src": "1768:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2323, + "id": 2417, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1783:25:6", + "src": "1768:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1770:38:6" + "src": "1755:38:6" }, { - "assignments": [2326], + "assignments": [2420], "declarations": [ { "constant": false, - "id": 2326, + "id": 2420, + "mutability": "mutable", "name": "newHackathon", "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "1818:20:6", + "scope": 2456, + "src": "1803:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3186,90 +2958,81 @@ "typeString": "address" }, "typeName": { - "id": 2325, + "id": 2419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1818:7:6", + "src": "1803:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "id": 2337, + "id": 2432, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2330, + "id": 2425, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "1863:2:6", + "referencedDeclaration": 2415, + "src": "1848:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2331, + "id": 2426, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1867:4:6", + "referencedDeclaration": 2401, + "src": "1852:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2332, + "id": 2427, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, - "src": "1873:11:6", + "referencedDeclaration": 2403, + "src": "1858:11:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2333, + "id": 2428, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1886:3:6", + "referencedDeclaration": 4294967281, + "src": "1871:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2334, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1886:10:6", + "src": "1871:10:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3295,31 +3058,30 @@ "typeString": "address payable" } ], - "id": 2329, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "1849:13:6", + "src": "1834:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_contract$_Hackathon_$2089_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_contract$_Hackathon_$2174_$", "typeString": "function (uint256,bytes32,bytes32,address) returns (contract Hackathon)" }, "typeName": { - "contractScope": null, - "id": 2328, + "id": 2423, "name": "Hackathon", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "1853:9:6", + "referencedDeclaration": 2174, + "src": "1838:9:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } }, - "id": 2335, + "id": 2430, "isConstant": false, "isLValue": false, "isPure": false, @@ -3327,9 +3089,10 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1849:48:6", + "src": "1834:48:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } } @@ -3337,24 +3100,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } ], - "id": 2327, + "id": 2422, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1841:7:6", + "src": "1826:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 2421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1826:7:6", + "typeDescriptions": {} + } }, - "id": 2336, + "id": 2431, "isConstant": false, "isLValue": false, "isPure": false, @@ -3362,27 +3131,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1841:57:6", + "src": "1826:57:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1818:80:6" + "src": "1803:80:6" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2341, + "id": 2436, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1932:12:6", + "referencedDeclaration": 2420, + "src": "1917:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3397,33 +3165,31 @@ } ], "expression": { - "argumentTypes": null, - "id": 2338, + "id": 2433, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "1908:18:6", + "referencedDeclaration": 2346, + "src": "1893:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2340, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1908:23:6", + "src": "1893:23:6", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 2342, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, @@ -3431,48 +3197,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1908:37:6", + "src": "1893:37:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2343, + "id": 2438, "nodeType": "ExpressionStatement", - "src": "1908:37:6" + "src": "1893:37:6" }, { "expression": { - "argumentTypes": null, - "id": 2348, + "id": 2443, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2344, + "id": 2439, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "1955:16:6", + "referencedDeclaration": 2350, + "src": "1940:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2346, + "id": 2441, "indexExpression": { - "argumentTypes": null, - "id": 2345, + "id": 2440, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1972:4:6", + "referencedDeclaration": 2401, + "src": "1957:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3483,7 +3246,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1955:22:6", + "src": "1940:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3492,108 +3255,99 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, - "id": 2347, + "id": 2442, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "1980:12:6", + "referencedDeclaration": 2420, + "src": "1965:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1955:37:6", + "src": "1940:37:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2349, + "id": 2444, "nodeType": "ExpressionStatement", - "src": "1955:37:6" + "src": "1940:37:6" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2351, + "id": 2446, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2321, - "src": "2028:2:6", + "referencedDeclaration": 2415, + "src": "2013:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2352, + "id": 2447, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "2032:4:6", + "referencedDeclaration": 2401, + "src": "2017:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2353, + "id": 2448, "name": "description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2302, - "src": "2038:11:6", + "referencedDeclaration": 2403, + "src": "2023:11:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2354, + "id": 2449, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "2051:12:6", + "referencedDeclaration": 2420, + "src": "2036:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2355, + "id": 2450, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2065:3:6", + "referencedDeclaration": 4294967281, + "src": "2050:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2356, + "id": 2451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2065:10:6", + "src": "2050:10:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3623,18 +3377,18 @@ "typeString": "address payable" } ], - "id": 2350, + "id": 2445, "name": "NewHackathonContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2266, - "src": "2007:20:6", + "referencedDeclaration": 2363, + "src": "1992:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (uint256,bytes32,bytes32,address,address)" } }, - "id": 2357, + "id": 2452, "isConstant": false, "isLValue": false, "isPure": false, @@ -3642,122 +3396,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2007:69:6", + "src": "1992:69:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2358, + "id": 2453, "nodeType": "EmitStatement", - "src": "2002:74:6" + "src": "1987:74:6" }, { "expression": { - "argumentTypes": null, - "id": 2359, + "id": 2454, "name": "newHackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2326, - "src": "2093:12:6", + "referencedDeclaration": 2420, + "src": "2078:12:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2312, - "id": 2360, + "functionReturnParameters": 2413, + "id": 2455, "nodeType": "Return", - "src": "2086:19:6" + "src": "2071:19:6" } ] }, - "documentation": "@notice Creates and deploys a new Hackathon contract.\n@param name Unique hackathon's name.\n@param description A short description for the Hackathon.\n@return The new contract's address.", - "id": 2362, + "documentation": { + "id": 2399, + "nodeType": "StructuredDocumentation", + "src": "1254:211:6", + "text": "@notice Creates and deploys a new Hackathon contract.\n@param name Unique hackathon's name.\n@param description A short description for the Hackathon.\n@return The new contract's address." + }, + "functionSelector": "a3ea17e6", + "id": 2457, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2305, + "id": 2406, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1550:4:6", + "referencedDeclaration": 2401, + "src": "1590:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2306, + "id": 2407, "modifierName": { - "argumentTypes": null, - "id": 2304, + "id": 2405, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "1537:12:6", + "referencedDeclaration": 2379, + "src": "1577:12:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1537:18:6" + "src": "1577:18:6" }, { "arguments": [ { - "argumentTypes": null, - "id": 2308, + "id": 2409, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2300, - "src": "1584:4:6", + "referencedDeclaration": 2401, + "src": "1624:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2309, + "id": 2410, "modifierName": { - "argumentTypes": null, - "id": 2307, + "id": 2408, "name": "uniqueHackathonName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2298, - "src": "1564:19:6", + "referencedDeclaration": 2398, + "src": "1604:19:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "1564:25:6" + "src": "1604:25:6" } ], "name": "createHackathonContract", "nodeType": "FunctionDefinition", "parameters": { - "id": 2303, + "id": 2404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2300, + "id": 2401, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1463:12:6", + "scope": 2457, + "src": "1503:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3765,25 +3522,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 2299, + "id": 2400, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1463:7:6", + "src": "1503:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2302, + "id": 2403, + "mutability": "mutable", "name": "description", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1477:19:6", + "scope": 2457, + "src": "1517:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3791,32 +3548,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2301, + "id": 2402, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1477:7:6", + "src": "1517:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "1462:35:6" + "src": "1502:35:6" }, "returnParameters": { - "id": 2312, + "id": 2413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2311, + "id": 2412, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "1607:7:6", + "scope": 2457, + "src": "1647:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3824,79 +3581,84 @@ "typeString": "address" }, "typeName": { - "id": 2310, + "id": 2411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1607:7:6", + "src": "1647:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1606:9:6" + "src": "1646:9:6" }, - "scope": 2407, - "src": "1430:682:6", + "scope": 2504, + "src": "1470:627:6", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2370, + "id": 2466, "nodeType": "Block", - "src": "2341:42:6", + "src": "2326:42:6", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2368, + "id": 2464, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2358:18:6", + "referencedDeclaration": 2346, + "src": "2343:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "functionReturnParameters": 2367, - "id": 2369, + "functionReturnParameters": 2463, + "id": 2465, "nodeType": "Return", - "src": "2351:25:6" + "src": "2336:25:6" } ] }, - "documentation": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses ", - "id": 2371, + "documentation": { + "id": 2458, + "nodeType": "StructuredDocumentation", + "src": "2103:138:6", + "text": "@notice Get a list with the addresses of the deployed contracts.\n@return List of deployed contract's addresses " + }, + "functionSelector": "bc00a209", + "id": 2467, "implemented": true, "kind": "function", "modifiers": [], "name": "getDeployedHackathonContracts", "nodeType": "FunctionDefinition", "parameters": { - "id": 2363, + "id": 2459, "nodeType": "ParameterList", "parameters": [], - "src": "2299:2:6" + "src": "2284:2:6" }, "returnParameters": { - "id": 2367, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2366, + "id": 2462, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2371, - "src": "2323:16:6", + "scope": 2467, + "src": "2308:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -3905,66 +3667,61 @@ }, "typeName": { "baseType": { - "id": 2364, + "id": 2460, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2323:7:6", + "src": "2308:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2365, - "length": null, + "id": 2461, "nodeType": "ArrayTypeName", - "src": "2323:9:6", + "src": "2308:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, - "value": null, "visibility": "internal" } ], - "src": "2322:18:6" + "src": "2307:18:6" }, - "scope": 2407, - "src": "2261:122:6", + "scope": 2504, + "src": "2246:122:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2390, + "id": 2486, "nodeType": "Block", - "src": "2601:109:6", + "src": "2586:95:6", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2382, + "id": 2479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 2379, + "id": 2476, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2619:2:6", + "referencedDeclaration": 2470, + "src": "2604:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3973,57 +3730,36 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2380, + "id": 2477, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2624:18:6", + "referencedDeclaration": 2346, + "src": "2609:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2381, + "id": 2478, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2624:25:6", + "src": "2609:25:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2619:30:6", + "src": "2604:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206964", - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2651:12:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2c270178c73806a8dbbf8aad0f9eb77e61abe0b7a93239d42f99fae572eed526", - "typeString": "literal_string \"invalid id\"" - }, - "value": "invalid id" } ], "expression": { @@ -4031,24 +3767,20 @@ { "typeIdentifier": "t_bool", "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2c270178c73806a8dbbf8aad0f9eb77e61abe0b7a93239d42f99fae572eed526", - "typeString": "literal_string \"invalid id\"" } ], - "id": 2378, + "id": 2475, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2611:7:6", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2596:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 2384, + "id": 2480, "isConstant": false, "isLValue": false, "isPure": false, @@ -4056,41 +3788,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2611:53:6", + "src": "2596:39:6", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2385, + "id": 2481, "nodeType": "ExpressionStatement", - "src": "2611:53:6" + "src": "2596:39:6" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2386, + "id": 2482, "name": "deployedHackathons", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2681:18:6", + "referencedDeclaration": 2346, + "src": "2652:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2388, + "id": 2484, "indexExpression": { - "argumentTypes": null, - "id": 2387, + "id": 2483, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2700:2:6", + "referencedDeclaration": 2470, + "src": "2671:2:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4101,37 +3831,44 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2681:22:6", + "src": "2652:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2377, - "id": 2389, + "functionReturnParameters": 2474, + "id": 2485, "nodeType": "Return", - "src": "2674:29:6" + "src": "2645:29:6" } ] }, - "documentation": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract", - "id": 2391, + "documentation": { + "id": 2468, + "nodeType": "StructuredDocumentation", + "src": "2374:131:6", + "text": "@notice Get a contract address with the internal id.\n@return An address representing a deployed contract" + }, + "functionSelector": "2208d92a", + "id": 2487, "implemented": true, "kind": "function", "modifiers": [], "name": "getHackathonContractById", "nodeType": "FunctionDefinition", "parameters": { - "id": 2374, + "id": 2471, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2373, + "id": 2470, + "mutability": "mutable", "name": "id", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "2559:10:6", + "scope": 2487, + "src": "2544:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4139,32 +3876,32 @@ "typeString": "uint256" }, "typeName": { - "id": 2372, + "id": 2469, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2559:7:6", + "src": "2544:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2558:12:6" + "src": "2543:12:6" }, "returnParameters": { - "id": 2377, + "id": 2474, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2376, + "id": 2473, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2391, - "src": "2592:7:6", + "scope": 2487, + "src": "2577:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4172,59 +3909,55 @@ "typeString": "address" }, "typeName": { - "id": 2375, + "id": 2472, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2592:7:6", + "src": "2577:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2591:9:6" + "src": "2576:9:6" }, - "scope": 2407, - "src": "2525:185:6", + "scope": 2504, + "src": "2510:171:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2405, + "id": 2502, "nodeType": "Block", - "src": "2953:46:6", + "src": "2924:46:6", "statements": [ { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, - "id": 2401, + "id": 2498, "name": "hackathonsByName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2970:16:6", + "referencedDeclaration": 2350, + "src": "2941:16:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$", "typeString": "mapping(bytes32 => address)" } }, - "id": 2403, + "id": 2500, "indexExpression": { - "argumentTypes": null, - "id": 2402, + "id": 2499, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "2987:4:6", + "referencedDeclaration": 2490, + "src": "2958:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4235,71 +3968,76 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2970:22:6", + "src": "2941:22:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 2400, - "id": 2404, + "functionReturnParameters": 2497, + "id": 2501, "nodeType": "Return", - "src": "2963:29:6" + "src": "2934:29:6" } ] }, - "documentation": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract", - "id": 2406, + "documentation": { + "id": 2488, + "nodeType": "StructuredDocumentation", + "src": "2687:133:6", + "text": "@notice Get a contract address with the internal name.\n@return An address representing a deployed contract" + }, + "functionSelector": "34ab9484", + "id": 2503, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2396, + "id": 2493, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "2929:4:6", + "referencedDeclaration": 2490, + "src": "2900:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 2397, + "id": 2494, "modifierName": { - "argumentTypes": null, - "id": 2395, + "id": 2492, "name": "notEmptyName", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "2916:12:6", + "referencedDeclaration": 2379, + "src": "2887:12:6", "typeDescriptions": { "typeIdentifier": "t_modifier$_t_bytes32_$", "typeString": "modifier (bytes32)" } }, "nodeType": "ModifierInvocation", - "src": "2916:18:6" + "src": "2887:18:6" } ], "name": "getHackathonContractByName", "nodeType": "FunctionDefinition", "parameters": { - "id": 2394, + "id": 2491, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2393, + "id": 2490, + "mutability": "mutable", "name": "name", "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "2890:12:6", + "scope": 2503, + "src": "2861:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4307,32 +4045,32 @@ "typeString": "bytes32" }, "typeName": { - "id": 2392, + "id": 2489, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2890:7:6", + "src": "2861:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "2889:14:6" + "src": "2860:14:6" }, "returnParameters": { - "id": 2400, + "id": 2497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2399, + "id": 2496, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2406, - "src": "2944:7:6", + "scope": 2503, + "src": "2915:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4340,123 +4078,79 @@ "typeString": "address" }, "typeName": { - "id": 2398, + "id": 2495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2944:7:6", + "src": "2915:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2943:9:6" + "src": "2914:9:6" }, - "scope": 2407, - "src": "2854:145:6", + "scope": 2504, + "src": "2825:145:6", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" } ], - "scope": 2408, - "src": "356:2645:6" + "scope": 2505, + "src": "396:2576:6" } ], - "src": "0:3002:6" + "src": "40:2933:6" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" - }, - "networks": { - "3": { - "events": {}, - "links": {}, - "address": "0xB8E8120e5616Fe345b439ea29922b924DF0B8A13", - "transactionHash": "0x5bce241fe622c11d1fdcf780c07a0103f91913a27edf7367ff94d64790087fbc" - }, - "42": { - "events": {}, - "links": {}, - "address": "0x8E7A8de5b0c883dCDe4AA260A91d7717BFfec5c4", - "transactionHash": "0x4ceec42b003fced2477eb7fad17c22e9df75dd2d4cc820742c74be44064b209b" - }, - "5777": { - "events": { - "0x6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "description", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "address", - "name": "contractAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "creator", - "type": "address" - } - ], - "name": "NewHackathonContract", - "type": "event", - "signature": "0x6456da3468764771670b34d5c07edeb48ba5e503c11b72833a8f90a1fda1e52b" - } - }, - "links": {}, - "address": "0x79C0cADf6F145E8A2091c28180a9F80bbF7E9C80", - "transactionHash": "0xe2f9683a7a082ec443640c89eb06a60fc7f3f48df19243e8ec6f2df8bdf9653d" - } + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:37:34.453Z", - "networkType": "ethereum", + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.074Z", "devdoc": { "details": "TODO: use struct to keep record of hackathon names, and allow implementing upgradability.", + "events": { + "NewHackathonContract(uint256,bytes32,bytes32,address,address)": { + "details": "emitted when a new Hackathon contract is deployed." + } + }, + "kind": "dev", "methods": { "createHackathonContract(bytes32,bytes32)": { "params": { "description": "A short description for the Hackathon.", "name": "Unique hackathon's name." }, - "return": "The new contract's address." + "returns": { + "_0": "The new contract's address." + } }, "getDeployedHackathonContracts()": { - "return": "List of deployed contract's addresses " + "returns": { + "_0": "List of deployed contract's addresses " + } }, "getHackathonContractById(uint256)": { - "return": "An address representing a deployed contract" + "returns": { + "_0": "An address representing a deployed contract" + } }, "getHackathonContractByName(bytes32)": { - "return": "An address representing a deployed contract" + "returns": { + "_0": "An address representing a deployed contract" + } } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "createHackathonContract(bytes32,bytes32)": { "notice": "Creates and deploys a new Hackathon contract." @@ -4471,6 +4165,7 @@ "notice": "Get a contract address with the internal name." } }, - "notice": "A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses." + "notice": "A factory to deploy new Hackathon contracts, and provide functionality to retrieve the deployed contracts' addresses.", + "version": 1 } } diff --git a/build/contracts/HackathonMock.json b/build/contracts/HackathonMock.json index 09dffc3..1add376 100644 --- a/build/contracts/HackathonMock.json +++ b/build/contracts/HackathonMock.json @@ -19,7 +19,6 @@ "type": "bytes32" } ], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -345,7 +344,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -355,12 +353,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -370,12 +366,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -395,12 +389,10 @@ ], "name": "allocatePrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -410,48 +402,38 @@ ], "name": "approveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "closeSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" }, { - "constant": true, "inputs": [], "name": "description", "outputs": [ @@ -461,12 +443,10 @@ "type": "bytes32" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getEvaluationStatus", "outputs": [ @@ -476,12 +456,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getRegistrationStatus", "outputs": [ @@ -491,12 +469,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getSubmissionStatus", "outputs": [ @@ -506,12 +482,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -547,12 +521,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -588,12 +560,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "getWinnersIds", "outputs": [ @@ -613,12 +583,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "id", "outputs": [ @@ -628,12 +596,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -649,12 +615,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -670,12 +634,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "name", "outputs": [ @@ -685,48 +647,38 @@ "type": "bytes32" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "openEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openRegistration", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "openSubmission", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "publishRank", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "bytes32", @@ -752,12 +704,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -767,30 +717,24 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -800,12 +744,10 @@ ], "name": "reproveTeam", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -815,12 +757,10 @@ ], "name": "reproveTeams", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256[]", @@ -835,12 +775,10 @@ ], "name": "submitEvaluation", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "uint256", @@ -881,12 +819,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -901,12 +837,10 @@ ], "name": "updateProposalData", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -916,30 +850,24 @@ ], "name": "withdrawPrize", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "dummyAllocatePrizesMock", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "dummyPublishRankMock", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "getPrizeAllocationStatus", "outputs": [ @@ -949,187 +877,191 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_description\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"secondPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thirdPlacePrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organizer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeAllocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"firstPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thirdPrize\",\"type\":\"uint256\"}],\"name\":\"allocatePrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"dummyAllocatePrizesMock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"dummyPublishRankMock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPrizeAllocationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"id\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"winnerAddress\",\"type\":\"address\"}],\"name\":\"withdrawPrize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"details\":\"It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners.\"},\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getEvaluationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getRegistrationStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getSubmissionStatus()\":{\"return\":\"{bool} returns {true} if enabled; otherwise, {false}.\"},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"return\":\"{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade\"},\"getWinnersIds()\":{\"return\":\"{uint256} First place's id{uint256} Second place's id{uint256} Third place's id\"},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}},\"withdrawPrize(address)\":{\"details\":\"Winners must implement IPayable to receive funds.\"}}},\"userdoc\":{\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"notice\":\"Allows the organizer to allocate funds that's going to be distributed to winners.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"},\"withdrawPrize(address)\":{\"notice\":\"Allows withdrawing prizes to winners.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol\":\"HackathonMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xc15a9e0ef31fce09f610aa64da88dbf3f256af120e0c94d4b90dca958cc61a0f\",\"urls\":[\"bzz-raw://9597586371e6012927afcecc19997345b541dab8882a8cb7cc7e8f46a3f60838\",\"dweb:/ipfs/QmdUxhk9iwYeY1WNHcAxFDTMFoMznLd36FCko9AmwYwDaJ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0x95995388083fbaa2dbb256cfd12d775c0e7da755052b3e6322fc56cc5b28836f\",\"urls\":[\"bzz-raw://77979a86ff0e2df9c610b111cc7ebae4d6fd1cc3e313fbd1f6a0822dcd94123f\",\"dweb:/ipfs/QmcrcszBfQnfUPJfpjG2N98GZAShTNVdAsgNq5CskfVC12\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xe3fdb779273bfa141a141ef263c9792767c35b57403687a37520a927d09b6047\",\"urls\":[\"bzz-raw://adca681bf59d48162c48ef671ac1de8620f3c602059605cadd2bd536b34210d6\",\"dweb:/ipfs/QmXjvH1oQu9WoyzbCEVWtEGwqQ3ea3uXDgfV3qFroUo3uz\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol\":{\"keccak256\":\"0x5fe38e8715cfc082cfb4bae8105272f5c719d76509a330027c492761a729d2c1\",\"urls\":[\"bzz-raw://ab6d984bf373392f6decb8528b68aa8878c7033f2f9bea8d1647c740272be2d1\",\"dweb:/ipfs/QmZ97Z1cTy2V5dHSFJUcmskVw2Q7Fcp53itiyiBxpu6LEX\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0x55c3fee5dd6f5a3dc91d24e3650e0bdfea2048179a7ebe46d0737d4a36d6d3b7\",\"urls\":[\"bzz-raw://4f919c30702ef4c180a884887cb7b3333d4be14cd24fa38f9b4438a3ddaf48c5\",\"dweb:/ipfs/QmY5TK5uEn4Mi5HHB3apUZQ4yED9qTiYH5QCMVqMt8v64h\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620036ff380380620036ff833981810160405260608110156200003757600080fd5b50805160208201516040909201519091908282823380808080620000bc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000d0816001600160e01b036200018a16565b50849150600090501a60f81b7fff00000000000000000000000000000000000000000000000000000000000000166200016a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f496e76616c6964206e616d650000000000000000000000000000000000000000604482015290519081900360640190fd5b506022929092556023556024555050602b805460ff19169055506200041c565b620001a0816200022460201b62002dfe1760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a546200021e92909162000276811b620026d017901c565b600a5550565b6200023f816004620002f260201b62002f3d1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b600082820183811015620002eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200030782826001600160e01b036200039916565b156200037457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003fc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620036dd6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6132b1806200042c6000396000f3fe60806040526004361061020e5760003560e01c806390d768e411610118578063d0e30db0116100a0578063ed896d661161006f578063ed896d66146107a3578063f540548b146107d6578063f59ec3f914610800578063ff91865114610836578063ffc6ff1e1461084b5761020e565b8063d0e30db014610723578063e35fb2411461072b578063e4725f0214610740578063eaf2f9cd146107735761020e565b8063ae237c77116100e7578063ae237c771461069c578063ae2ac4ae146106b1578063af640d0f146106e4578063b2a13f92146106f9578063d06e4ee71461070e5761020e565b806390d768e41461062a578063927cab471461063f578063a2bce8bd14610672578063a72418a4146106875761020e565b80634b30b66f1161019b57806358e2f50e1161016a57806358e2f50e146105795780637284e4161461058e578063737a6340146105a35780637385712c146105d65780637dc673bc146106155761020e565b80634b30b66f146105075780634ea701a81461051c57806354e1db2b1461054f578063567ad862146105645761020e565b8063288c4a46116101e2578063288c4a46146102f85780633e091f64146103755780633ed2b77a14610444578063400feb02146104ab57806341676f15146104c05761020e565b80628e0f1b1461021357806306fdde031461027257806311dc45c91461029957806324ba9fab146102ce575b600080fd5b34801561021f57600080fd5b5061023d6004803603602081101561023657600080fd5b5035610860565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561027e57600080fd5b5061028761094a565b60408051918252519081900360200190f35b3480156102a557600080fd5b506102cc600480360360208110156102bc57600080fd5b50356001600160a01b0316610950565b005b3480156102da57600080fd5b506102cc600480360360208110156102f157600080fd5b5035610d5e565b34801561030457600080fd5b506102cc6004803603602081101561031b57600080fd5b81019060208101813564010000000081111561033657600080fd5b82018360208201111561034857600080fd5b8035906020019184602083028401116401000000008311171561036a57600080fd5b509092509050610d6a565b34801561038157600080fd5b506102cc6004803603604081101561039857600080fd5b8101906020810181356401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460208302840111640100000000831117156103e757600080fd5b91939092909160208101903564010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184602083028401116401000000008311171561043957600080fd5b509092509050610daa565b34801561045057600080fd5b5061046e6004803603602081101561046757600080fd5b5035611139565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b3480156104b757600080fd5b506102cc61118c565b3480156104cc57600080fd5b506104f3600480360360208110156104e357600080fd5b50356001600160a01b03166111df565b604080519115158252519081900360200190f35b34801561051357600080fd5b506102cc6111fa565b34801561052857600080fd5b5061023d6004803603602081101561053f57600080fd5b50356001600160a01b0316611205565b34801561055b57600080fd5b506104f36112e0565b34801561057057600080fd5b506102cc6112ee565b34801561058557600080fd5b506102cc6112f7565b34801561059a57600080fd5b50610287611395565b3480156105af57600080fd5b506105b861139b565b60408051938452602084019290925282820152519081900360600190f35b3480156105e257600080fd5b50610287600480360360608110156105f957600080fd5b508035906001600160a01b0360208201351690604001356113a9565b34801561062157600080fd5b506102cc611787565b34801561063657600080fd5b506102cc611823565b34801561064b57600080fd5b506102cc6004803603602081101561066257600080fd5b50356001600160a01b0316611ce9565b34801561067e57600080fd5b506104f3611d36565b34801561069357600080fd5b506102cc611d3f565b3480156106a857600080fd5b506102cc611d92565b3480156106bd57600080fd5b506102cc600480360360208110156106d457600080fd5b50356001600160a01b0316611e2c565b3480156106f057600080fd5b50610287611e79565b34801561070557600080fd5b506102cc611e7f565b34801561071a57600080fd5b506102cc611f18565b6102cc611fb3565b34801561073757600080fd5b506104f361202b565b34801561074c57600080fd5b506102cc6004803603602081101561076357600080fd5b50356001600160a01b0316612034565b34801561077f57600080fd5b506102cc6004803603604081101561079657600080fd5b5080359060200135612081565b3480156107af57600080fd5b506104f3600480360360208110156107c657600080fd5b50356001600160a01b03166121ed565b3480156107e257600080fd5b506102cc600480360360208110156107f957600080fd5b5035612200565b34801561080c57600080fd5b506102cc6004803603606081101561082357600080fd5b5080359060208101359060400135612209565b34801561084257600080fd5b506104f36123c2565b34801561085757600080fd5b506102cc6123cb565b6000806000806000856108728161246a565b6108b5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6108bd612fbe565b600188815481106108ca57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff166109a0576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff166109f7576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b038116610a4a576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a925760405162461bcd60e51b81526004018080602001828103825260328152602001806130dd6032913960400191505060405180910390fd5b81610a9c81612471565b610aed576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b775750506011546025546026546001600160a01b0390921692509060019060ff1615610b655760405162461bcd60e51b81526004018080602001828103825260228152602001806131526022913960400191505060405180910390fd5b6026805460ff19166001179055610cb4565b6017546001600160a01b0387811691161415610bfa5750506017546027546028546001600160a01b0390921692509060029060ff1615610be85760405162461bcd60e51b815260040180806020018281038252602381526020018061325a6023913960400191505060405180910390fd5b6028805460ff19166001179055610cb4565b601d546001600160a01b0387811691161415610c7d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c6b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131b36022913960400191505060405180910390fd5b602a805460ff19166001179055610cb4565b60405162461bcd60e51b815260040180806020018281038252604381526020018061310f6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b5050505050505050505050565b610d67816124b8565b50565b610da68282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125fa92505050565b5050565b600e5460ff16610df8576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610e01336121ed565b610e3c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061305e602b913960400191505060405180910390fd5b828114610e7a5760405162461bcd60e51b81526004018080602001828103825260338152602001806131d56033913960400191505060405180910390fd5b6002548314610eba5760405162461bcd60e51b815260040180806020018281038252603f815260200180613174603f913960400191505060405180910390fd5b600060025411610f11576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f6b5760405162461bcd60e51b815260040180806020018281038252602281526020018061303c6022913960400191505060405180910390fd5b60005b6002548110156110d9576000868683818110610f8657fe5b9050602002013590506000858584818110610f9d57fe5b9050602002013560ff169050610fb28261246a565b610ff5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610ffe8261262a565b611046576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61104f816126c4565b611090576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061109f57fe5b906000526020600020906006020190506110c98260ff1682600501546126d090919063ffffffff16565b6005909101555050600101610f6e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b6001818154811061114657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b611195336111df565b6111d05760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b6021805460ff19166001179055565b60006111f260048363ffffffff61273116565b90505b919050565b61120333612798565b565b6000808080806001600160a01b03861661125d576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b611265612fbe565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611203336127c8565b600354610100900460ff1615611349576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b611352336111df565b61138d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b61120361280b565b60245481565b600f54601554601b54909192565b60035460009060ff166113fc576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b03191661145e576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166114b9576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611529576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611534612fbe565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb9093019290925581549091908390811061169c57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546117339163ffffffff6126d016565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166117d7576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6117e0336111df565b61181b5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b61120361285b565b60035460ff1615611872576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156118c4576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff1615611911576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61191a336111df565b6119555760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b60215460ff16156119a6576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116119f3576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6119fb612fbe565b611a03612fbe565b611a0b612fbe565b611a13612fbe565b60005b600154811015611afe5760018181548110611a2d57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a0820152955080611aa557508160a001518560a00151105b15611aaf57611af6565b8360a001518560a001511115611ac9578493929150611af6565b8260a001518560a001511115611ae25784929150611af6565b8160a001518560a001511115611af6578491505b600101611a16565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611cf2336111df565b611d2d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d678161289b565b600e5460ff1690565b611d48336111df565b611d835760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b602b805460ff19166001179055565b600e5460ff16611de0576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611de9336111df565b611e245760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612a2e565b611e35336111df565b611e705760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d6781612798565b60225481565b600e5460ff1615611ecc576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611ed5336111df565b611f105760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612a6e565b60035460ff1615611f67576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611f70336111df565b611fab5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612ab8565b60003411611ff25760405162461bcd60e51b815260040180806020018281038252602181526020018061301b6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b61203d336111df565b6120785760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d6781612b02565b8161208b8161246a565b6120ce576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826120d88161262a565b612120576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612173576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061218257fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111f260058363ffffffff61273116565b610d6781612b79565b612212336111df565b61224d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b602b5460ff16156122a5576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006122c7826122bb868663ffffffff6126d016565b9063ffffffff6126d016565b905030318111156123095760405162461bcd60e51b815260040180806020018281038252603081526020018061322a6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b602b5460ff1690565b600354610100900460ff1661241e576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b612427336111df565b6124625760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612c54565b6001541190565b6011546000906001600160a01b038381169116148061249d57506017546001600160a01b038381169116145b806111f2575050601d546001600160a01b0390811691161490565b806124c28161246a565b612505576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161250f8161262a565b15612559576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061256857fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125a1919063ffffffff6126d016565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610da65761262282828151811061261557fe5b6020026020010151612b79565b6001016125fd565b60006126358261246a565b612641575060006111f5565b612649612fbe565b6001838154811061265657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561272a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166127785760405162461bcd60e51b81526004018080602001828103825260228152602001806132086022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6127a181612c9f565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6127d181612ce2565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a5461280590600163ffffffff612d2a16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6128a481612d87565b600c546128af612ff3565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612b0b81612dfe565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54612805916126d0565b80612b838161246a565b612bc6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612bd08161262a565b612c18576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612c2757fe5b6000918252602090912060069091020160048101805460ff191690556002549091506125a1906001612d2a565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612ca881612e46565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612cdc90600163ffffffff612d2a16565b60075550565b612cf360048263ffffffff612e8e16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612d81576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612d9081612ef5565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612cdc916126d0565b612e0f60048263ffffffff612f3d16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612e5760058263ffffffff612e8e16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612e988282612731565b612ed35760405162461bcd60e51b81526004018080602001828103825260218152602001806130bc6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612f0660058263ffffffff612f3d16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612f478282612731565b15612f99576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820906743c01f2eaced11521cf1c57b1cb9b0c39f298c1392e1dde7a5b53319291964736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x60806040526004361061020e5760003560e01c806390d768e411610118578063d0e30db0116100a0578063ed896d661161006f578063ed896d66146107a3578063f540548b146107d6578063f59ec3f914610800578063ff91865114610836578063ffc6ff1e1461084b5761020e565b8063d0e30db014610723578063e35fb2411461072b578063e4725f0214610740578063eaf2f9cd146107735761020e565b8063ae237c77116100e7578063ae237c771461069c578063ae2ac4ae146106b1578063af640d0f146106e4578063b2a13f92146106f9578063d06e4ee71461070e5761020e565b806390d768e41461062a578063927cab471461063f578063a2bce8bd14610672578063a72418a4146106875761020e565b80634b30b66f1161019b57806358e2f50e1161016a57806358e2f50e146105795780637284e4161461058e578063737a6340146105a35780637385712c146105d65780637dc673bc146106155761020e565b80634b30b66f146105075780634ea701a81461051c57806354e1db2b1461054f578063567ad862146105645761020e565b8063288c4a46116101e2578063288c4a46146102f85780633e091f64146103755780633ed2b77a14610444578063400feb02146104ab57806341676f15146104c05761020e565b80628e0f1b1461021357806306fdde031461027257806311dc45c91461029957806324ba9fab146102ce575b600080fd5b34801561021f57600080fd5b5061023d6004803603602081101561023657600080fd5b5035610860565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561027e57600080fd5b5061028761094a565b60408051918252519081900360200190f35b3480156102a557600080fd5b506102cc600480360360208110156102bc57600080fd5b50356001600160a01b0316610950565b005b3480156102da57600080fd5b506102cc600480360360208110156102f157600080fd5b5035610d5e565b34801561030457600080fd5b506102cc6004803603602081101561031b57600080fd5b81019060208101813564010000000081111561033657600080fd5b82018360208201111561034857600080fd5b8035906020019184602083028401116401000000008311171561036a57600080fd5b509092509050610d6a565b34801561038157600080fd5b506102cc6004803603604081101561039857600080fd5b8101906020810181356401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460208302840111640100000000831117156103e757600080fd5b91939092909160208101903564010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184602083028401116401000000008311171561043957600080fd5b509092509050610daa565b34801561045057600080fd5b5061046e6004803603602081101561046757600080fd5b5035611139565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b3480156104b757600080fd5b506102cc61118c565b3480156104cc57600080fd5b506104f3600480360360208110156104e357600080fd5b50356001600160a01b03166111df565b604080519115158252519081900360200190f35b34801561051357600080fd5b506102cc6111fa565b34801561052857600080fd5b5061023d6004803603602081101561053f57600080fd5b50356001600160a01b0316611205565b34801561055b57600080fd5b506104f36112e0565b34801561057057600080fd5b506102cc6112ee565b34801561058557600080fd5b506102cc6112f7565b34801561059a57600080fd5b50610287611395565b3480156105af57600080fd5b506105b861139b565b60408051938452602084019290925282820152519081900360600190f35b3480156105e257600080fd5b50610287600480360360608110156105f957600080fd5b508035906001600160a01b0360208201351690604001356113a9565b34801561062157600080fd5b506102cc611787565b34801561063657600080fd5b506102cc611823565b34801561064b57600080fd5b506102cc6004803603602081101561066257600080fd5b50356001600160a01b0316611ce9565b34801561067e57600080fd5b506104f3611d36565b34801561069357600080fd5b506102cc611d3f565b3480156106a857600080fd5b506102cc611d92565b3480156106bd57600080fd5b506102cc600480360360208110156106d457600080fd5b50356001600160a01b0316611e2c565b3480156106f057600080fd5b50610287611e79565b34801561070557600080fd5b506102cc611e7f565b34801561071a57600080fd5b506102cc611f18565b6102cc611fb3565b34801561073757600080fd5b506104f361202b565b34801561074c57600080fd5b506102cc6004803603602081101561076357600080fd5b50356001600160a01b0316612034565b34801561077f57600080fd5b506102cc6004803603604081101561079657600080fd5b5080359060200135612081565b3480156107af57600080fd5b506104f3600480360360208110156107c657600080fd5b50356001600160a01b03166121ed565b3480156107e257600080fd5b506102cc600480360360208110156107f957600080fd5b5035612200565b34801561080c57600080fd5b506102cc6004803603606081101561082357600080fd5b5080359060208101359060400135612209565b34801561084257600080fd5b506104f36123c2565b34801561085757600080fd5b506102cc6123cb565b6000806000806000856108728161246a565b6108b5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6108bd612fbe565b600188815481106108ca57fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff166109a0576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff166109f7576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b038116610a4a576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a925760405162461bcd60e51b81526004018080602001828103825260328152602001806130dd6032913960400191505060405180910390fd5b81610a9c81612471565b610aed576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b775750506011546025546026546001600160a01b0390921692509060019060ff1615610b655760405162461bcd60e51b81526004018080602001828103825260228152602001806131526022913960400191505060405180910390fd5b6026805460ff19166001179055610cb4565b6017546001600160a01b0387811691161415610bfa5750506017546027546028546001600160a01b0390921692509060029060ff1615610be85760405162461bcd60e51b815260040180806020018281038252602381526020018061325a6023913960400191505060405180910390fd5b6028805460ff19166001179055610cb4565b601d546001600160a01b0387811691161415610c7d575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c6b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131b36022913960400191505060405180910390fd5b602a805460ff19166001179055610cb4565b60405162461bcd60e51b815260040180806020018281038252604381526020018061310f6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d3d57600080fd5b505af1158015610d51573d6000803e3d6000fd5b5050505050505050505050565b610d67816124b8565b50565b610da68282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506125fa92505050565b5050565b600e5460ff16610df8576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610e01336121ed565b610e3c5760405162461bcd60e51b815260040180806020018281038252602b81526020018061305e602b913960400191505060405180910390fd5b828114610e7a5760405162461bcd60e51b81526004018080602001828103825260338152602001806131d56033913960400191505060405180910390fd5b6002548314610eba5760405162461bcd60e51b815260040180806020018281038252603f815260200180613174603f913960400191505060405180910390fd5b600060025411610f11576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f6b5760405162461bcd60e51b815260040180806020018281038252602281526020018061303c6022913960400191505060405180910390fd5b60005b6002548110156110d9576000868683818110610f8657fe5b9050602002013590506000858584818110610f9d57fe5b9050602002013560ff169050610fb28261246a565b610ff5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610ffe8261262a565b611046576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b61104f816126c4565b611090576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061109f57fe5b906000526020600020906006020190506110c98260ff1682600501546126d090919063ffffffff16565b6005909101555050600101610f6e565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b6001818154811061114657fe5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b611195336111df565b6111d05760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b6021805460ff19166001179055565b60006111f260048363ffffffff61273116565b90505b919050565b61120333612798565b565b6000808080806001600160a01b03861661125d576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b611265612fbe565b505050506001600160a01b0392831660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909616928601839052600381015460608701819052600482015460ff1615156080880181905260059092015460a090970187905291969295919450925090565b600354610100900460ff1690565b611203336127c8565b600354610100900460ff1615611349576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b611352336111df565b61138d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b61120361280b565b60245481565b600f54601554601b54909192565b60035460009060ff166113fc576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b03191661145e576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166114b9576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611529576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600154611534612fbe565b506040805160c081018252828152602081018781526001600160a01b0387811693830193845260608301878152600160808501818152600060a08701818152835480850185559184905287517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660069093029283015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8880180546001600160a01b031916919095161790935590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf986015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8501805460ff191691151591909117905590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb9093019290925581549091908390811061169c57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff19909216919091179055600591820154919092015590546117339163ffffffff6126d016565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166117d7576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6117e0336111df565b61181b5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b61120361285b565b60035460ff1615611872576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156118c4576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff1615611911576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b61191a336111df565b6119555760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b60215460ff16156119a6576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116119f3576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6119fb612fbe565b611a03612fbe565b611a0b612fbe565b611a13612fbe565b60005b600154811015611afe5760018181548110611a2d57fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a0820152955080611aa557508160a001518560a00151105b15611aaf57611af6565b8360a001518560a001511115611ac9578493929150611af6565b8260a001518560a001511115611ae25784929150611af6565b8160a001518560a001511115611af6578491505b600101611a16565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611cf2336111df565b611d2d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d678161289b565b600e5460ff1690565b611d48336111df565b611d835760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b602b805460ff19166001179055565b600e5460ff16611de0576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611de9336111df565b611e245760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612a2e565b611e35336111df565b611e705760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d6781612798565b60225481565b600e5460ff1615611ecc576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611ed5336111df565b611f105760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612a6e565b60035460ff1615611f67576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611f70336111df565b611fab5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612ab8565b60003411611ff25760405162461bcd60e51b815260040180806020018281038252602181526020018061301b6021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b61203d336111df565b6120785760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b610d6781612b02565b8161208b8161246a565b6120ce576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826120d88161262a565b612120576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff16612173576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061218257fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111f260058363ffffffff61273116565b610d6781612b79565b612212336111df565b61224d5760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b602b5460ff16156122a5576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006122c7826122bb868663ffffffff6126d016565b9063ffffffff6126d016565b905030318111156123095760405162461bcd60e51b815260040180806020018281038252603081526020018061322a6030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b602b5460ff1690565b600354610100900460ff1661241e576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b612427336111df565b6124625760405162461bcd60e51b81526004018080602001828103825260338152602001806130896033913960400191505060405180910390fd5b611203612c54565b6001541190565b6011546000906001600160a01b038381169116148061249d57506017546001600160a01b038381169116145b806111f2575050601d546001600160a01b0390811691161490565b806124c28161246a565b612505576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b8161250f8161262a565b15612559576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061256857fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506125a1919063ffffffff6126d016565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610da65761262282828151811061261557fe5b6020026020010151612b79565b6001016125fd565b60006126358261246a565b612641575060006111f5565b612649612fbe565b6001838154811061265657fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60008282018381101561272a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b0382166127785760405162461bcd60e51b81526004018080602001828103825260228152602001806132086022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6127a181612c9f565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b6127d181612ce2565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a5461280590600163ffffffff612d2a16565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b6128a481612d87565b600c546128af612ff3565b6040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c81908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff02191690831515021790555050505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612b0b81612dfe565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a54612805916126d0565b80612b838161246a565b612bc6576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612bd08161262a565b612c18576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612c2757fe5b6000918252602090912060069091020160048101805460ff191690556002549091506125a1906001612d2a565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612ca881612e46565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612cdc90600163ffffffff612d2a16565b60075550565b612cf360048263ffffffff612e8e16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b600082821115612d81576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b612d9081612ef5565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612cdc916126d0565b612e0f60048263ffffffff612f3d16565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b612e5760058263ffffffff612e8e16565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612e988282612731565b612ed35760405162461bcd60e51b81526004018080602001828103825260218152602001806130bc6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b612f0660058263ffffffff612f3d16565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b612f478282612731565b15612f99576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a265627a7a72315820906743c01f2eaced11521cf1c57b1cb9b0c39f298c1392e1dde7a5b53319291964736f6c634300050c0032", - "sourceMap": "58:510:13:-;;;100:155;8:9:-1;5:2;;;30:1;27;20:12;5:2;100:155:13;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;100:155:13;;;;;;;;;;;;;;;;;221:10;;;;1889:30:22;1881:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:31;1968:16;-1:-1:-1;;;;;1954:13:22;:31;:::i;:::-;-1:-1:-1;2688:5:4;;-1:-1:-1;2694:1:4;;-1:-1:-1;2688:8:4;;;:13;;2680:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2728:2:4;:8;;;;2746:4;:12;2768:11;:26;-1:-1:-1;;2804:15:4;:23;;-1:-1:-1;;2804:23:4;;;-1:-1:-1;58:510:13;;1599:232:20;1658:28;1678:7;1658:19;;;;;:28;;:::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1772:21;:52;-1:-1:-1;1599:232:20:o;2455:128:22:-;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;58:510:13:-;;;;;;;", - "deployedSourceMap": "58:510:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3439:293:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3439:293:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3439:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3439:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;838:19:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:19:4;;;:::i;:::-;;;;;;;;;;;;;;;;3980:1510;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3980:1510:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3980:1510:4;-1:-1:-1;;;;;3980:1510:4;;:::i;:::-;;8416:83:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8416:83:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8416:83:3;;:::i;8791:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8791:98:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8791:98:3;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8791:98:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8791:98:3;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8791:98:3;;-1:-1:-1;8791:98:3;-1:-1:-1;8791:98:3;:::i;2703:1555:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2703:1555:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2703:1555:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2703:1555:1;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2703:1555:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2703:1555:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2703:1555:1;;-1:-1:-1;2703:1555:1;-1:-1:-1;2703:1555:1;:::i;1103:19:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1103:19:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1103:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:92:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;364:92:13;;;:::i;2144:113:22:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2144:113:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;2240:73:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:73:21;;;:::i;4172:332:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4172:332:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4172:332:3;-1:-1:-1;;;;;4172:332:3;;:::i;8042:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8042:101:3;;;:::i;2368:81:22:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2368:81:22;;;:::i;7408:108:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7408:108:1;;;:::i;863:26:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;863:26:4;;;:::i;6283:145:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6283:145:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4887:1108:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4887:1108:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4887:1108:3;;;-1:-1:-1;;;;;4887:1108:3;;;;;;;;;;:::i;6559:114:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6559:114:1;;;:::i;4426:1656::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4426:1656:1;;;:::i;994:91:20:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;994:91:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;994:91:20;-1:-1:-1;;;;;994:91:20;;:::i;8220:101:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8220:101:1;;;:::i;261:97:13:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;261:97:13;;;:::i;7699:102:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7699:102:1;;;:::i;1091:97:20:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1091:97:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1091:97:20;-1:-1:-1;;;;;1091:97:20;;:::i;815:17:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:17:4;;;:::i;7983:102:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7983:102:1;;;:::i;6803:114::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6803:114:1;;;:::i;348:162:18:-;;;:::i;7243:105:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7243:105:3;;;:::i;2263:99:22:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2263:99:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;6206:343:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6206:343:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6206:343:3;;;;;;;:::i;2003:105:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2003:105:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2003:105:21;-1:-1:-1;;;;;2003:105:21;;:::i;9160:83:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9160:83:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9160:83:3;;:::i;3221:620:4:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3221:620:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3221:620:4;;;;;;;;;;;;:::i;462:104:13:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;462:104:13;;;:::i;7109:108:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7109:108:1;;;:::i;3439:293:3:-;3545:7;3554;3563;3572:4;3578:7;3520:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;3601:16;;:::i;:::-;3620:5;3626:6;3620:13;;;;;;;;;;;;;;;;;3601:32;;;;;;;;3620:13;;;;;;;;3601:32;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3601:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;;-1:-1:-1;3601:32:3;-1:-1:-1;3439:293:3;-1:-1:-1;;;;3439:293:3:o;838:19:4:-;;;;:::o;3980:1510::-;1652:13:1;;;;1644:48;;;;;-1:-1:-1;;;1644:48:1;;;;;;;;;;;;-1:-1:-1;;;1644:48:1;;;;;;;;;;;;;;;1729:15:4;;;;1721:52;;;;;-1:-1:-1;;;1721:52:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4121:13;-1:-1:-1;;;;;2016:21:4;;2008:54;;;;;-1:-1:-1;;;2008:54:4;;;;;;;;;;;;-1:-1:-1;;;2008:54:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;2080:24:4;;2099:4;2080:24;;2072:87;;;;-1:-1:-1;;;2072:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4162:13;1865:30;1881:13;1865:15;:30::i;:::-;1857:74;;;;;-1:-1:-1;;;1857:74:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;4294:22;;4191:19;;;;;;-1:-1:-1;;;;;4277:39:4;;;4294:22;;4277:39;4273:1038;;;-1:-1:-1;;4346:22:4;;4391:15;:22;4466:20;;-1:-1:-1;;;;;4346:22:4;;;;-1:-1:-1;4391:22:4;4346;;4466:20;;4465:21;4457:68;;;;-1:-1:-1;;;4457:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:20;:27;;-1:-1:-1;;4539:27:4;4562:4;4539:27;;;4273:1038;;;4604:23;;-1:-1:-1;;;;;4587:40:4;;;4604:23;;4587:40;4583:728;;;-1:-1:-1;;4657:23:4;;4703:16;:23;4779:21;;-1:-1:-1;;;;;4657:23:4;;;;-1:-1:-1;4703:23:4;4657;;4779:21;;4778:22;4770:70;;;;-1:-1:-1;;;4770:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4854:21;:28;;-1:-1:-1;;4854:28:4;4878:4;4854:28;;;4583:728;;;4920:22;;-1:-1:-1;;;;;4903:39:4;;;4920:22;;4903:39;4899:412;;;-1:-1:-1;;4972:22:4;;5017:15;:22;5092:20;;-1:-1:-1;;;;;4972:22:4;;;;-1:-1:-1;5017:22:4;5068:1;;5092:20;;5091:21;5083:68;;;;-1:-1:-1;;;5083:68:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5165:20;:27;;-1:-1:-1;;5165:27:4;5188:4;5165:27;;;4899:412;;;5223:77;;-1:-1:-1;;;5223:77:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4899:412;5326:60;;;;;;;;;;;;;5382:3;5326:60;;;;;;5370:10;;-1:-1:-1;;;;;5326:60:4;;;;;;;;;;;;5447:11;-1:-1:-1;;;;;5438:29:4;;5474:6;5438:45;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5438:45:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5438:45:4;;;;;1941:1;;;2169;1783;3980:1510;:::o;8416:83:3:-;8472:20;8485:6;8472:12;:20::i;:::-;8416:83;:::o;8791:98::-;8860:22;8874:7;;8860:22;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8860:13:3;;-1:-1:-1;;;8860:22:3:i;:::-;8791:98;;:::o;2703:1555:1:-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;1912:19:21;1920:10;1912:7;:19::i;:::-;1904:75;;;;-1:-1:-1;;;1904:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2868:35:1;;;2860:99;;;;-1:-1:-1;;;2860:99:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3008:18;;2990:36;;2969:146;;;;-1:-1:-1;;;2969:146:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3154:1;3133:18;;:22;3125:64;;;;;-1:-1:-1;;;3125:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3236:10;3199:19;3221:26;;;:14;:26;;;;;3266:11;;;;-1:-1:-1;;;3266:11:1;;;;3265:12;3257:59;;;;-1:-1:-1;;;3257:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:9;3326:801;3350:18;;3346:1;:22;3326:801;;;3389:14;3406:7;;3414:1;3406:10;;;;;;;;;;;;;3389:27;;3430:11;3444:10;;3455:1;3444:13;;;;;;;;;;;;;;;3430:27;;3850:21;3864:6;3850:13;:21::i;:::-;3842:49;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;-1:-1:-1;;;3842:49:1;;;;;;;;;;;;;;;3913:22;3928:6;3913:14;:22::i;:::-;3905:55;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;-1:-1:-1;;;3905:55:1;;;;;;;;;;;;;;;3982:19;3995:5;3982:12;:19::i;:::-;3974:45;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;-1:-1:-1;;;3974:45:1;;;;;;;;;;;;;;;4034:17;4054:5;4060:6;4054:13;;;;;;;;;;;;;;;;;;4034:33;;4094:21;4109:5;4094:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4081:10;;;;:34;-1:-1:-1;;3370:3:1;;3326:801;;;-1:-1:-1;4192:4:1;4178:11;;:18;;-1:-1:-1;;;;4178:18:1;-1:-1:-1;;;4178:18:1;;;;;4222:8;;4211:40;;;-1:-1:-1;;;;;4232:18:1;;;4211:40;;;4222:8;;4211:40;;;;;;;;;;1989:1:21;2703:1555:1;;;;:::o;1103:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1103:19:3;;-1:-1:-1;;;;;1103:19:3;;;;;;;;;;:::o;364:92:13:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:13:13;:20;;-1:-1:-1;;429:20:13;445:4;429:20;;;364:92::o;2144:113:22:-;2203:4;2226:24;:11;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;;2144:113;;;;:::o;2240:73:21:-;2282:24;2295:10;2282:12;:24::i;:::-;2240:73::o;4172:332:3:-;4240:7;;;;;-1:-1:-1;;;;;4300:25:3;;4292:58;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;-1:-1:-1;;;4292:58:3;;;;;;;;;;;;;;;4360:16;;:::i;:::-;-1:-1:-1;;;;;;;;;4379:26:3;;;:13;:26;;;;;;;;;;;;4360:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4360:45:3;-1:-1:-1;4360:45:3;4172:332::o;8042:101::-;8119:17;;;;;;;;8042:101::o;2368:81:22:-;2414:28;2431:10;2414:16;:28::i;7408:108:1:-;2513:17:3;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7486:23:1;:21;:23::i;863:26:4:-;;;;:::o;6283:145:1:-;6376:10;:13;6391:11;:14;6407:10;:13;6283:145;;;:::o;4887:1108:3:-;2163:19;;5031:7;;2163:19;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;5062:8;5071:1;5062:11;;;-1:-1:-1;;;;;;5062:16:3;5054:54;;;;;-1:-1:-1;;;5054:54:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5126:25:3;;5118:65;;;;;-1:-1:-1;;;5118:65:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5201:26:3;;;5251:1;5201:26;;;;;;;;;;:38;;;;:52;5193:88;;;;;-1:-1:-1;;;5193:88:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:5;:12;5688:16;;:::i;:::-;-1:-1:-1;5707:58:3;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5707:58:3;;;;;;;;;;;;;;;5757:4;5707:58;;;;;;-1:-1:-1;5707:58:3;;;;;;27:10:-1;;23:18;;;45:23;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5775:16:3;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5775:16:3;;;;;;;;;;;;;;;;;;;;5830:13;;5707:58;;5757:4;5707:58;;5830:13;;;;;;;;;;;;;;-1:-1:-1;;;;;5801:26:3;;;;;;;;;;;;;5830:13;;;;;;;5801:42;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5801:42:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5801:42:3;;;;;;;;;;;;;;;;;;;5874:18;;:25;;;:22;:25;:::i;:::-;5853:18;:46;5914:51;;;;;;5960:4;5914:51;;;;;;-1:-1:-1;;;;;5914:51:3;;;5929:6;;5914:51;;;;;;;;;;;-1:-1:-1;5982:6:3;4887:1108;-1:-1:-1;;;;4887:1108:3:o;6559:114:1:-;2163:19:3;;;;2155:54;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;-1:-1:-1;;;2155:54:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6640:26:1;:24;:26::i;4426:1656::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2513:17;;;;;;;2512:18;2504:49;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;-1:-1:-1;;;2504:49:3;;;;;;;;;;;;;;;1543:17:1;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1765:13:1;;;;1764:14;1756:49;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;-1:-1:-1;;;1756:49:1;;;;;;;;;;;;;;;4643:1;4622:18;;:22;4614:54;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;-1:-1:-1;;;4614:54:1;;;;;;;;;;;;;;;4678:19;;:::i;:::-;4707:20;;:::i;:::-;4737:21;;:::i;:::-;4768:20;;:::i;:::-;4804:9;4799:881;4823:5;:12;4819:16;;4799:881;;;4866:5;4872:1;4866:8;;;;;;;;;;;;;;;;;4856:18;;;;;;;;4866:8;;;;;;;4856:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4856:18:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4856:18:1;4892:51;;;4929:8;:14;;;4913:7;:13;;;:30;4892:51;4888:213;;;5078:8;;4888:213;5301:8;:14;;;5285:7;:13;;;:30;5281:389;;;5422:7;;5385:8;5346:9;-1:-1:-1;5281:389:1;;;5470:9;:15;;;5454:7;:13;;;:31;5450:220;;;5555:7;;5516:9;-1:-1:-1;5450:220:1;;;5603:8;:14;;;5587:7;:13;;;:30;5583:87;;;5648:7;5637:18;;5583:87;4837:3;;4799:881;;;-1:-1:-1;5690:21:1;;:10;:21;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5690:21:1;;;-1:-1:-1;;;;;5690:21:1;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5690:21:1;;;;;;;;;;;;;;;;;;;;;5721:23;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5754:21;;:10;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5785:13;:20;;;;;-1:-1:-1;5785:20:1;;;;;;5820:74;;;;;5850:22;;;;5820:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5924:11;:14;5940:23;;5965:17;;5909:77;;;;;;-1:-1:-1;;;;;5940:23:1;;;5909:77;;;;;;;;5940:23;5909:77;;;;;;;;;;;;;;6016:10;:13;6031:22;;6055:16;;;6001:74;;;;;;-1:-1:-1;;;;;6031:22:1;;;6001:74;;;;;;;;;;;6073:1;6001:74;;;;;;;;;;;;;;1815:1;;;;4426:1656::o;994:91:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1060:18:20;1070:7;1060:9;:18::i;8220:101:1:-;8297:17;;;;8220:101;:::o;261:97:13:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:15:13;:22;;-1:-1:-1;;329:22:13;347:4;329:22;;;261:97::o;7699:102:1:-;1428:17;;;;1420:50;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;-1:-1:-1;;;1420:50:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7776:18:1;:16;:18::i;1091:97:20:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:21:20;1173:7;1160:12;:21::i;815:17:4:-;;;;:::o;7983:102:1:-;1543:17;;;;1542:18;1534:49;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;-1:-1:-1;;;1534:49:1;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8061:17:1;:15;:17::i;6803:114::-;2284:19:3;;;;2283:20;2275:53;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;-1:-1:-1;;;2275:53:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6885:25:1;:23;:25::i;348:162:18:-;414:1;402:9;:13;394:59;;;;-1:-1:-1;;;394:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:35;;;488:9;468:35;;;;499:3;;476:10;;468:35;;;;;;;;;348:162::o;7243:105:3:-;7322:19;;;;7243:105;:::o;2263:99:22:-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;6206:343:3:-;6309:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;6340:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;2398:17;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;6387:17;6407:5;6413:6;6407:13;;;;;;;;;;;;;;;;;6430:17;6407:13;;;;;6430:17;;;:32;;;6506:16;;;;6497:7;;6477:65;;;;;;;;6407:13;;-1:-1:-1;;;;;;6506:16:3;;;;6497:7;;6477:65;;;;;;;;;;2450:1;2683;6206:343;;;:::o;2003:105:21:-;2058:4;2081:20;:7;2093;2081:20;:11;:20;:::i;9160:83:3:-;9216:20;9229:6;9216:12;:20::i;3221:620:4:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:15:4;;;;1612:16;1604:53;;;;;-1:-1:-1;;;1604:53:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3388:19;3410:43;3442:10;3410:27;:10;3425:11;3410:27;:14;:27;:::i;:::-;:31;:43;:31;:43;:::i;:::-;3388:65;-1:-1:-1;3494:4:4;3486:21;3471:36;;;3463:97;;;;-1:-1:-1;;;3463:97:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3588:24;;;;;;;;;;;-1:-1:-1;3588:24:4;;;;;;;3570:15;:42;;;;;;-1:-1:-1;;3570:42:4;;;;;;3641:25;;;;;;;;;;;;;;;3622:16;:44;;;;;;;;;;3694:24;;;;;;;;;;;;;;;;3676:15;:42;;;;;;;;;;3728:15;:22;;;;;3588:24;3728:22;;;3765:69;;;;;;;;;;;;;;;;;3830:3;3765:69;;;;;;3818:10;;3765:69;;;;;;;;;;1667:1;3221:620;;;:::o;462:104:13:-;544:15;;;;462:104;:::o;7109:108:1:-;2398:17:3;;;;;;;2390:50;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;-1:-1:-1;;;2390:50:3;;;;;;;;;;;;;;;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7186:24:1;:22;:24::i;10868:115:3:-;10963:5;:12;-1:-1:-1;10954:21:3;10868:115::o;5574:282:4:-;5698:22;;5644:4;;-1:-1:-1;;;;;5681:39:4;;;5698:22;;5681:39;;:99;;-1:-1:-1;5757:23:4;;-1:-1:-1;;;;;5740:40:4;;;5757:23;;5740:40;5681:99;:158;;;-1:-1:-1;;5817:22:4;;-1:-1:-1;;;;;5817:22:4;;;5800:39;;;;5574:282::o;9973:300:3:-;10032:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10055:6;2885:22;2900:6;2885:14;:22::i;:::-;2884:23;2876:57;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;-1:-1:-1;;;2876:57:3;;;;;;;;;;;;;;;10073:17;10093:5;10099:6;10093:13;;;;;;;;;;;;;;;;10116;10093;;;;;10116;;;:20;;-1:-1:-1;;10116:20:3;10132:4;10116:20;;;;;;10167:18;;10093:13;;-1:-1:-1;10167:25:3;;:18;:25;:22;:25;:::i;:::-;10146:18;:46;;;10234:16;;;10225:7;;10252:13;;;;10207:59;;;10252:13;;;;10207:59;;;;;-1:-1:-1;;;;;10234:16:3;;;;10207:59;;;;;;;;;2943:1;2683;9973:300;;:::o;10315:168::-;10388:9;10383:94;10407:7;:14;10403:1;:18;10383:94;;;10442:24;10455:7;10463:1;10455:10;;;;;;;;;;;;;;10442:12;:24::i;:::-;10423:3;;10383:94;;11025:223;11088:4;11109:21;11123:6;11109:13;:21::i;:::-;11104:65;;-1:-1:-1;11153:5:3;11146:12;;11104:65;11179:16;;:::i;:::-;11198:5;11204:6;11198:13;;;;;;;;;;;;;;;;;11179:32;;;;;;;;11198:13;;;;;;;11179:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11179:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11025:223:3;;;:::o;9846:115:1:-;9951:2;9942:11;;;;;;;9846:115::o;834:176:25:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:25:o;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;9430:234:1:-;9488:27;9507:7;9488:18;:27::i;:::-;-1:-1:-1;;;;;9547:23:1;9525:19;9547:23;;;:14;:23;;;;;9580:12;;:20;;-1:-1:-1;;;;9580:20:1;;;9430:234::o;1837:205:20:-;1899:31;1922:7;1899:22;:31::i;:::-;-1:-1:-1;;;;;1940:25:20;;1968:5;1940:25;;;:16;:25;;;;;:33;;-1:-1:-1;;1940:33:20;;;2007:21;;:28;;1940:33;2007:28;:25;:28;:::i;:::-;1983:21;:52;-1:-1:-1;1837:205:20:o;9797:134:3:-;9843:17;:24;;-1:-1:-1;;9843:24:3;;;;;;;;;9882:42;;;9906:17;;;;9843:24;9906:17;9882:42;;;;;;;;;;;;;;;9797:134::o;9285:144::-;9334:19;:27;;-1:-1:-1;;9334:27:3;;;9376:46;;;9356:5;9376:46;;;;;;;;;;;;;9285:144::o;8839:472:1:-;9042:24;9058:7;9042:15;:24::i;:::-;9092:10;:17;9119:18;;:::i;:::-;9140:34;;;;;;;;9146:5;9140:34;;;;9153:7;-1:-1:-1;;;;;9140:34:1;;;;;9162:4;9140:34;;;;;;9168:5;9140:34;;;;;9119:55;;9184:10;9200:5;9184:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9184:22:1;;;;;-1:-1:-1;;;;;9184:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9242:5;9216:14;:23;9231:7;-1:-1:-1;;;;;9216:23:1;-1:-1:-1;;;;;9216:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9216:31:1;;;;;-1:-1:-1;;;;;9216:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8839:472;;;:::o;8386:136::-;8433:17;:25;;-1:-1:-1;;8433:25:1;;;8473:42;;;8453:5;8473:42;;;;;;;;;;;;;8386:136::o;8586:134::-;8632:17;:24;;-1:-1:-1;;8632:24:1;8652:4;8632:24;;;;;8671:42;;;8632:24;8695:17;;;;8671:42;;;;;;;;;;;;;;8586:134::o;9471:142:3:-;9519:19;:26;;-1:-1:-1;;9519:26:3;9541:4;9519:26;;;;;9560:46;;;9519:26;9586:19;;;;9560:46;;;;;;;;;;;;;;9471:142::o;1599:232:20:-;1658:28;1678:7;1658:19;:28::i;:::-;1696:10;27::-1;;39:1;23:18;;;45:23;;;1696:24:20;;;;-1:-1:-1;;;;;;1696:24:20;-1:-1:-1;;;;;1696:24:20;;;;;;;;-1:-1:-1;1730:25:20;;;:16;1696:24;1730:25;;;;:32;;-1:-1:-1;;1730:32:20;;;;;1796:21;;:28;;:25;:28::i;10525:301:3:-;10584:6;2632:21;2646:6;2632:13;:21::i;:::-;2624:49;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;-1:-1:-1;;;2624:49:3;;;;;;;;;;;;;;;10607:6;2755:22;2770:6;2755:14;:22::i;:::-;2747:55;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;-1:-1:-1;;;2747:55:3;;;;;;;;;;;;;;;10625:17;10645:5;10651:6;10645:13;;;;;;;;;;;;;;;;;;;;;10668;;;:21;;-1:-1:-1;;10668:21:3;;;10720:18;;10645:13;;-1:-1:-1;10720:25:3;;-1:-1:-1;10720:22:3;:25::i;9619:136::-;9666:17;:25;;-1:-1:-1;;9666:25:3;;;;;9706:42;;;9666:25;9730:17;;;9666:25;9730:17;9706:42;;;;;;;;;;;;;;9619:136::o;1408:185:20:-;1466:27;1485:7;1466:18;:27::i;:::-;-1:-1:-1;;;;;1503:21:20;;1527:5;1503:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1503:29:20;;;1562:17;;:24;;1503:29;1562:24;:21;:24;:::i;:::-;1542:17;:44;-1:-1:-1;1408:185:20:o;2589:136:22:-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;1274:179:25:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:25;;;1274:179::o;1194:208:20:-;1249:24;1265:7;1249:15;:24::i;:::-;1283:6;27:10:-1;;39:1;23:18;;;45:23;;;1283:20:20;;;;-1:-1:-1;;;;;;1283:20:20;-1:-1:-1;;;;;1283:20:20;;;;;;;;-1:-1:-1;1313:21:20;;;:12;1283:20;1313:21;;;;:28;;-1:-1:-1;;1313:28:20;;;;;1371:17;;:24;;:21;:24::i;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;2441:124:21:-;2499:23;:7;2514;2499:23;:14;:23;:::i;:::-;2537:21;;-1:-1:-1;;;;;2537:21:21;;;;;;;;2441:124;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o;2319:116:21:-;2374:20;:7;2386;2374:20;:11;:20;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;58:510:13:-;;;;;;;;;-1:-1:-1;58:510:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;58:510:13;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../core/Hackathon.sol\";\n\ncontract HackathonMock is Hackathon {\n constructor(uint256 _id, bytes32 _name, bytes32 _description)\n public\n Hackathon(_id, _name, _description, msg.sender)\n {\n //\n }\n\n function dummyAllocatePrizesMock() external onlyOrganizer {\n prizesAllocated = true;\n }\n\n function dummyPublishRankMock() external onlyOrganizer {\n rankPublished = true;\n }\n\n function getPrizeAllocationStatus() external view returns (bool) {\n return prizesAllocated;\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_description\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"EvaluationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"judgeAddress\",\"type\":\"address\"}],\"name\":\"JudgeVoted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"firstPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"secondPlacePrize\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"thirdPlacePrize\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"organizer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"PrizeAllocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"RegistrationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"SubmissionStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"TeamProposalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"TeamStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finalGrade\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"}],\"name\":\"WinnerAnnouced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"rankPosition\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"firstPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondPrize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thirdPrize\",\"type\":\"uint256\"}],\"name\":\"allocatePrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"approveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"closeSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dummyAllocatePrizesMock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dummyPublishRankMock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEvaluationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrizeAllocationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistrationStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSubmissionStatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"getTeam\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"}],\"name\":\"getTeamByAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWinnersIds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"id\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openRegistration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"openSubmission\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"publishRank\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"teamName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"registerTeam\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"}],\"name\":\"reproveTeam\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"}],\"name\":\"reproveTeams\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"teamIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint8[]\",\"name\":\"teamGrades\",\"type\":\"uint8[]\"}],\"name\":\"submitEvaluation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"teams\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"teamAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"grade\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"teamId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalData\",\"type\":\"bytes32\"}],\"name\":\"updateProposalData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"winnerAddress\",\"type\":\"address\"}],\"name\":\"withdrawPrize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allocatePrize(uint256,uint256,uint256)\":{\"details\":\"It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners.\"},\"approveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be approved\"}},\"closeEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"closeRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"closeSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"getEvaluationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getRegistrationStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getSubmissionStatus()\":{\"returns\":{\"_0\":\"{bool} returns {true} if enabled; otherwise, {false}.\"}},\"getTeam(uint256)\":{\"params\":{\"teamId\":\"{uint256} the team's unique identifier returned on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getTeamByAddress(address)\":{\"params\":{\"teamAddress\":\"{address} the team's contract address used on registration\"},\"returns\":{\"_0\":\"{bytes32} team's name\",\"_1\":\"{address} team's address\",\"_2\":\"{bytes32} team's proposal data\",\"_3\":\"{bool} team's status: {true} for approved; {false} for reproved;\",\"_4\":\"{uint256} team's grade\"}},\"getWinnersIds()\":{\"returns\":{\"_0\":\"{uint256} First place's id\",\"_1\":\"{uint256} Second place's id\",\"_2\":\"{uint256} Third place's id\"}},\"openEvaluation()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"openRegistration()\":{\"details\":\"Overwritten to add modifier for access control.\"},\"openSubmission()\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\"},\"publishRank()\":{\"details\":\"emitts an WinnerAnnounced event for each winner (1st, 2nd, 3rd place).\"},\"registerTeam(bytes32,address,bytes32)\":{\"details\":\"Registration process must be open.\",\"params\":{\"teamName\":\"{bytes32} team's proposal data; could be a hash for a file on IPFS or for a github link; not required\"}},\"reproveTeam(uint256)\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamId\":\"{uint256} the ids of the teams to be reproved\"}},\"reproveTeams(uint256[])\":{\"details\":\"Should be overwritten on inherited contract to add modifier or require statements for access control.\",\"params\":{\"teamIds\":\"{uint256[]} an array containing the ids of the teams to be reproved\"}},\"submitEvaluation(uint256[],uint8[])\":{\"details\":\"The position of teamId and teamGrade must be the same in the array. For example, if teamId \\\"1\\\" is sent at {teamIds} array position \\\"5\\\" (zero-based), the grade for team \\\"1\\\" must be sent at position \\\"5\\\" in {teamGrades} array.\",\"params\":{\"teamGrades\":\"Array of the grades given by the judge for each team.\",\"teamIds\":\"Array of the ids associated with each team that is going to be evaluated.\"}},\"updateProposalData(uint256,bytes32)\":{\"params\":{\"proposalData\":\"the updated data for the team's proposal\",\"teamId\":\"team's unique identifier; required\"}},\"withdrawPrize(address)\":{\"details\":\"Winners must implement IPayable to receive funds.\"}},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,uint256,uint256)\":{\"notice\":\"Event emitted when the contract receives a deposit.\"}},\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"},\"allocatePrize(uint256,uint256,uint256)\":{\"notice\":\"Allows the organizer to allocate funds that's going to be distributed to winners.\"},\"approveTeam(uint256)\":{\"notice\":\"(re)approves a team in participating in the contest\"},\"closeEvaluation()\":{\"notice\":\"Closes the evaluation process\"},\"closeRegistration()\":{\"notice\":\"Closes the registration process\"},\"closeSubmission()\":{\"notice\":\"Closes the proposal submission process\"},\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"},\"getEvaluationStatus()\":{\"notice\":\"Gets the evaluation status\"},\"getRegistrationStatus()\":{\"notice\":\"Gets the registration status\"},\"getSubmissionStatus()\":{\"notice\":\"Gets the submission status\"},\"getTeam(uint256)\":{\"notice\":\"Returns the stored information of a team\"},\"getTeamByAddress(address)\":{\"notice\":\"Returns the stored information of a team, based on a provided address\"},\"getWinnersIds()\":{\"notice\":\"Gets the id of the winner teams.\"},\"openEvaluation()\":{\"notice\":\"Opens the evaluation process\"},\"openRegistration()\":{\"notice\":\"Opens the registration process\"},\"openSubmission()\":{\"notice\":\"Opens the proposal submission process\"},\"publishRank()\":{\"notice\":\"Published the ranking results of the contest.\"},\"registerTeam(bytes32,address,bytes32)\":{\"notice\":\"Registers a new team in the contest registry.\"},\"reproveTeam(uint256)\":{\"notice\":\"reproves a team from participating in the contest\"},\"reproveTeams(uint256[])\":{\"notice\":\"reprove teams from participating in the contest\"},\"submitEvaluation(uint256[],uint8[])\":{\"notice\":\"Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all teams must be submitted once.\"},\"updateProposalData(uint256,bytes32)\":{\"notice\":\"Updates the proposal data for a specific team.\"},\"withdrawPrize(address)\":{\"notice\":\"Allows withdrawing prizes to winners.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol\":\"HackathonMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestBracketRegistry.sol\":{\"keccak256\":\"0xd1196a748082cce096e21d641038731001120bb5541da30f790f60e25755f47f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8bca457ac99eada6a9ced6bce02820693a3a01d593b999f53efd2de08e76d1ff\",\"dweb:/ipfs/QmV5ZNGfyjhfXD8g9Akt2bLm8dthjfe5bCm1xdXSbgm3sS\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/ContestTeamRegistry.sol\":{\"keccak256\":\"0xa34a43eda649b6f5f47ef78ad39ba98b57740fe1a8fe666c352c417144a766ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c2058149325eced44944dce8741d1f4868c6fe37940989fe8974ed0ed24d5069\",\"dweb:/ipfs/QmcvTo6aeZpeaPcjH23WAs7VqMyVNvhTCEEqhQ691AwXAp\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol\":{\"keccak256\":\"0xa6adf649500cc03ab551c7fb0c646f1bb90190d9d8fc26f6b9d9b786a71faa78\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://589c93299c47afbc897d500d66cc2263f8250cb1205868261f00042d98e3f062\",\"dweb:/ipfs/QmcBMUCdUaaDVQJbMaHNXwfJ3QeA3qW7gVwDyfDUdBoqmQ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol\":{\"keccak256\":\"0x0c68d1112441a4d5b3506693ced0e7a46cb26bcea027dee43957d923ba47309a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://36e078daf41645a6cb5d937ccb93e33142105e3caa926b1ad02a385fc2250fdb\",\"dweb:/ipfs/QmPe5pWtq9QNygBrU5Zz14ad4vRMPrYY7z6TFLk2dTnniY\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/ContestRoleManager.sol\":{\"keccak256\":\"0xfb0bb3050cc55bbbc446e3391a90762d043ca3ee4032d4e785f2770a20578d02\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bedc7d0fcfb279c9b67d99c1bac3adb309b162b533ed532adacd6ef3fb7d95f5\",\"dweb:/ipfs/QmNT5tR22EDiHXzZUQQFRKWtwFz7yjCT9g52V1EiCjFC9c\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200364738038062003647833981810160405260608110156200003757600080fd5b50805160208201516040909201519091908282823380808080620000a2576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b620000ad816200013c565b50849150600090501a60f81b7fff00000000000000000000000000000000000000000000000000000000000000166200011c576040805162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b604482015290519081900360640190fd5b506022929092556023556024555050602b805460ff191690555062000377565b6200015281620001d660201b620024331760201c565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60209081526040909120805460ff191683179055600a54620001d092909162000228811b6200247517901c565b600a5550565b620001f18160046200028a60201b620024d61790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b60008282018381101562000283576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6200029682826200030e565b15620002e9576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620003575760405162461bcd60e51b8152600401808060200182810382526022815260200180620036256022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61329e80620003876000396000f3fe60806040526004361061020e5760003560e01c806390d768e411610118578063d0e30db0116100a0578063ed896d661161006f578063ed896d66146107a3578063f540548b146107d6578063f59ec3f914610800578063ff91865114610836578063ffc6ff1e1461084b5761020e565b8063d0e30db014610723578063e35fb2411461072b578063e4725f0214610740578063eaf2f9cd146107735761020e565b8063ae237c77116100e7578063ae237c771461069c578063ae2ac4ae146106b1578063af640d0f146106e4578063b2a13f92146106f9578063d06e4ee71461070e5761020e565b806390d768e41461062a578063927cab471461063f578063a2bce8bd14610672578063a72418a4146106875761020e565b80634b30b66f1161019b57806358e2f50e1161016a57806358e2f50e146105795780637284e4161461058e578063737a6340146105a35780637385712c146105d65780637dc673bc146106155761020e565b80634b30b66f146105075780634ea701a81461051c57806354e1db2b1461054f578063567ad862146105645761020e565b8063288c4a46116101e2578063288c4a46146102f85780633e091f64146103755780633ed2b77a14610444578063400feb02146104ab57806341676f15146104c05761020e565b80628e0f1b1461021357806306fdde031461027257806311dc45c91461029957806324ba9fab146102ce575b600080fd5b34801561021f57600080fd5b5061023d6004803603602081101561023657600080fd5b5035610860565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561027e57600080fd5b50610287610944565b60408051918252519081900360200190f35b3480156102a557600080fd5b506102cc600480360360208110156102bc57600080fd5b50356001600160a01b031661094a565b005b3480156102da57600080fd5b506102cc600480360360208110156102f157600080fd5b5035610d58565b34801561030457600080fd5b506102cc6004803603602081101561031b57600080fd5b81019060208101813564010000000081111561033657600080fd5b82018360208201111561034857600080fd5b8035906020019184602083028401116401000000008311171561036a57600080fd5b509092509050610d64565b34801561038157600080fd5b506102cc6004803603604081101561039857600080fd5b8101906020810181356401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460208302840111640100000000831117156103e757600080fd5b91939092909160208101903564010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184602083028401116401000000008311171561043957600080fd5b509092509050610da4565b34801561045057600080fd5b5061046e6004803603602081101561046757600080fd5b5035611133565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b3480156104b757600080fd5b506102cc611189565b3480156104cc57600080fd5b506104f3600480360360208110156104e357600080fd5b50356001600160a01b03166111dc565b604080519115158252519081900360200190f35b34801561051357600080fd5b506102cc6111f1565b34801561052857600080fd5b5061023d6004803603602081101561053f57600080fd5b50356001600160a01b03166111fc565b34801561055b57600080fd5b506104f36112cd565b34801561057057600080fd5b506102cc6112db565b34801561058557600080fd5b506102cc6112e4565b34801561059a57600080fd5b50610287611382565b3480156105af57600080fd5b506105b8611388565b60408051938452602084019290925282820152519081900360600190f35b3480156105e257600080fd5b50610287600480360360608110156105f957600080fd5b508035906001600160a01b036020820135169060400135611396565b34801561062157600080fd5b506102cc611763565b34801561063657600080fd5b506102cc6117ff565b34801561064b57600080fd5b506102cc6004803603602081101561066257600080fd5b50356001600160a01b0316611cc5565b34801561067e57600080fd5b506104f3611d12565b34801561069357600080fd5b506102cc611d1b565b3480156106a857600080fd5b506102cc611d6e565b3480156106bd57600080fd5b506102cc600480360360208110156106d457600080fd5b50356001600160a01b0316611e08565b3480156106f057600080fd5b50610287611e55565b34801561070557600080fd5b506102cc611e5b565b34801561071a57600080fd5b506102cc611ef4565b6102cc611f8f565b34801561073757600080fd5b506104f3612007565b34801561074c57600080fd5b506102cc6004803603602081101561076357600080fd5b50356001600160a01b0316612010565b34801561077f57600080fd5b506102cc6004803603604081101561079657600080fd5b508035906020013561205d565b3480156107af57600080fd5b506104f3600480360360208110156107c657600080fd5b50356001600160a01b03166121c9565b3480156107e257600080fd5b506102cc600480360360208110156107f957600080fd5b50356121d6565b34801561080c57600080fd5b506102cc6004803603606081101561082357600080fd5b50803590602081013590604001356121df565b34801561084257600080fd5b506104f361238b565b34801561085757600080fd5b506102cc612394565b60008060008060008561087281612557565b6108b5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6000600188815481106108c457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661099a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff166109f1576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b038116610a44576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a8c5760405162461bcd60e51b81526004018080602001828103825260328152602001806130c96032913960400191505060405180910390fd5b81610a968161255e565b610ae7576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b715750506011546025546026546001600160a01b0390921692509060019060ff1615610b5f5760405162461bcd60e51b815260040180806020018281038252602281526020018061313e6022913960400191505060405180910390fd5b6026805460ff19166001179055610cae565b6017546001600160a01b0387811691161415610bf45750506017546027546028546001600160a01b0390921692509060029060ff1615610be25760405162461bcd60e51b81526004018080602001828103825260238152602001806132466023913960400191505060405180910390fd5b6028805460ff19166001179055610cae565b601d546001600160a01b0387811691161415610c77575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c655760405162461bcd60e51b815260040180806020018281038252602281526020018061319f6022913960400191505060405180910390fd5b602a805460ff19166001179055610cae565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130fb6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d3757600080fd5b505af1158015610d4b573d6000803e3d6000fd5b5050505050505050505050565b610d61816125a5565b50565b610da08282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506126e192505050565b5050565b600e5460ff16610df2576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610dfb336121c9565b610e365760405162461bcd60e51b815260040180806020018281038252602b81526020018061304a602b913960400191505060405180910390fd5b828114610e745760405162461bcd60e51b81526004018080602001828103825260338152602001806131c16033913960400191505060405180910390fd5b6002548314610eb45760405162461bcd60e51b815260040180806020018281038252603f815260200180613160603f913960400191505060405180910390fd5b600060025411610f0b576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f655760405162461bcd60e51b81526004018080602001828103825260228152602001806130286022913960400191505060405180910390fd5b60005b6002548110156110d3576000868683818110610f8057fe5b9050602002013590506000858584818110610f9757fe5b9050602002013560ff169050610fac82612557565b610fef576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610ff882612711565b611040576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b611049816127a5565b61108a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061109957fe5b906000526020600020906006020190506110c38260ff16826005015461247590919063ffffffff16565b6005909101555050600101610f68565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b6001818154811061114357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b611192336111dc565b6111cd5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6021805460ff19166001179055565b60006111e96004836127b1565b90505b919050565b6111fa33612818565b565b6000808080806001600160a01b038616611254576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b6111fa33612848565b600354610100900460ff1615611336576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61133f336111dc565b61137a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612885565b60245481565b600f54601554601b54909192565b60035460009060ff166113e9576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b03191661144b576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166114a6576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611516576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909201919091558254919290918390811061167e57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461170f91612475565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166117b3576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6117bc336111dc565b6117f75760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa6128d5565b60035460ff161561184e576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156118a0576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156118ed576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118f6336111dc565b6119315760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b60215460ff1615611982576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116119cf576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6119d7612fd1565b6119df612fd1565b6119e7612fd1565b6119ef612fd1565b60005b600154811015611ada5760018181548110611a0957fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a0820152955080611a8157508160a001518560a00151105b15611a8b57611ad2565b8360a001518560a001511115611aa5578493929150611ad2565b8260a001518560a001511115611abe5784929150611ad2565b8160a001518560a001511115611ad2578491505b6001016119f2565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611cce336111dc565b611d095760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612915565b600e5460ff1690565b611d24336111dc565b611d5f5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b602b805460ff19166001179055565b600e5460ff16611dbc576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611dc5336111dc565b611e005760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612aa6565b611e11336111dc565b611e4c5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612818565b60225481565b600e5460ff1615611ea8576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611eb1336111dc565b611eec5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612ae6565b60035460ff1615611f43576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611f4c336111dc565b611f875760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612b30565b60003411611fce5760405162461bcd60e51b81526004018080602001828103825260218152602001806130076021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b612019336111dc565b6120545760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612b7a565b8161206781612557565b6120aa576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826120b481612711565b6120fc576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661214f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061215e57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111e96005836127b1565b610d6181612bf1565b6121e8336111dc565b6122235760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b602b5460ff161561227b576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006122918261228b8686612475565b90612475565b9050478111156122d25760405162461bcd60e51b81526004018080602001828103825260308152602001806132166030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b602b5460ff1690565b600354610100900460ff166123e7576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123f0336111dc565b61242b5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612ccc565b61243e6004826124d6565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156124cf576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6124e082826127b1565b15612532576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061258a57506017546001600160a01b038381169116145b806111e9575050601d546001600160a01b0390811691161490565b806125af81612557565b6125f2576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816125fc81612711565b15612646576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061265557fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506126889190612475565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610da0576127098282815181106126fc57fe5b6020026020010151612bf1565b6001016126e4565b600061271c82612557565b612728575060006111ec565b60006001838154811061273757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166127f85760405162461bcd60e51b81526004018080602001828103825260228152602001806131f46022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61282181612d17565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61285181612d54565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a5461287f906001612d96565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61291e81612dd8565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612b8381612433565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461287f91612475565b80612bfb81612557565b612c3e576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612c4881612711565b612c90576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612c9f57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612688906001612d96565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612d2081612e4f565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612d4e906001612d96565b60075550565b612d5f600482612e91565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006124cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ef8565b612de181612f8f565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612d4e91612475565b612e5a600582612e91565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612e9b82826127b1565b612ed65760405162461bcd60e51b81526004018080602001828103825260218152602001806130a86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612f875760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f4c578181015183820152602001612f34565b50505050905090810190601f168015612f795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612f9a6005826124d6565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220a049ae4a09d43d928ff132f23a91940e132f8a13443304498aee4e78aad892f164736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x60806040526004361061020e5760003560e01c806390d768e411610118578063d0e30db0116100a0578063ed896d661161006f578063ed896d66146107a3578063f540548b146107d6578063f59ec3f914610800578063ff91865114610836578063ffc6ff1e1461084b5761020e565b8063d0e30db014610723578063e35fb2411461072b578063e4725f0214610740578063eaf2f9cd146107735761020e565b8063ae237c77116100e7578063ae237c771461069c578063ae2ac4ae146106b1578063af640d0f146106e4578063b2a13f92146106f9578063d06e4ee71461070e5761020e565b806390d768e41461062a578063927cab471461063f578063a2bce8bd14610672578063a72418a4146106875761020e565b80634b30b66f1161019b57806358e2f50e1161016a57806358e2f50e146105795780637284e4161461058e578063737a6340146105a35780637385712c146105d65780637dc673bc146106155761020e565b80634b30b66f146105075780634ea701a81461051c57806354e1db2b1461054f578063567ad862146105645761020e565b8063288c4a46116101e2578063288c4a46146102f85780633e091f64146103755780633ed2b77a14610444578063400feb02146104ab57806341676f15146104c05761020e565b80628e0f1b1461021357806306fdde031461027257806311dc45c91461029957806324ba9fab146102ce575b600080fd5b34801561021f57600080fd5b5061023d6004803603602081101561023657600080fd5b5035610860565b604080519586526001600160a01b03909416602086015284840192909252151560608401526080830152519081900360a00190f35b34801561027e57600080fd5b50610287610944565b60408051918252519081900360200190f35b3480156102a557600080fd5b506102cc600480360360208110156102bc57600080fd5b50356001600160a01b031661094a565b005b3480156102da57600080fd5b506102cc600480360360208110156102f157600080fd5b5035610d58565b34801561030457600080fd5b506102cc6004803603602081101561031b57600080fd5b81019060208101813564010000000081111561033657600080fd5b82018360208201111561034857600080fd5b8035906020019184602083028401116401000000008311171561036a57600080fd5b509092509050610d64565b34801561038157600080fd5b506102cc6004803603604081101561039857600080fd5b8101906020810181356401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460208302840111640100000000831117156103e757600080fd5b91939092909160208101903564010000000081111561040557600080fd5b82018360208201111561041757600080fd5b8035906020019184602083028401116401000000008311171561043957600080fd5b509092509050610da4565b34801561045057600080fd5b5061046e6004803603602081101561046757600080fd5b5035611133565b6040805196875260208701959095526001600160a01b039093168585015260608501919091521515608084015260a0830152519081900360c00190f35b3480156104b757600080fd5b506102cc611189565b3480156104cc57600080fd5b506104f3600480360360208110156104e357600080fd5b50356001600160a01b03166111dc565b604080519115158252519081900360200190f35b34801561051357600080fd5b506102cc6111f1565b34801561052857600080fd5b5061023d6004803603602081101561053f57600080fd5b50356001600160a01b03166111fc565b34801561055b57600080fd5b506104f36112cd565b34801561057057600080fd5b506102cc6112db565b34801561058557600080fd5b506102cc6112e4565b34801561059a57600080fd5b50610287611382565b3480156105af57600080fd5b506105b8611388565b60408051938452602084019290925282820152519081900360600190f35b3480156105e257600080fd5b50610287600480360360608110156105f957600080fd5b508035906001600160a01b036020820135169060400135611396565b34801561062157600080fd5b506102cc611763565b34801561063657600080fd5b506102cc6117ff565b34801561064b57600080fd5b506102cc6004803603602081101561066257600080fd5b50356001600160a01b0316611cc5565b34801561067e57600080fd5b506104f3611d12565b34801561069357600080fd5b506102cc611d1b565b3480156106a857600080fd5b506102cc611d6e565b3480156106bd57600080fd5b506102cc600480360360208110156106d457600080fd5b50356001600160a01b0316611e08565b3480156106f057600080fd5b50610287611e55565b34801561070557600080fd5b506102cc611e5b565b34801561071a57600080fd5b506102cc611ef4565b6102cc611f8f565b34801561073757600080fd5b506104f3612007565b34801561074c57600080fd5b506102cc6004803603602081101561076357600080fd5b50356001600160a01b0316612010565b34801561077f57600080fd5b506102cc6004803603604081101561079657600080fd5b508035906020013561205d565b3480156107af57600080fd5b506104f3600480360360208110156107c657600080fd5b50356001600160a01b03166121c9565b3480156107e257600080fd5b506102cc600480360360208110156107f957600080fd5b50356121d6565b34801561080c57600080fd5b506102cc6004803603606081101561082357600080fd5b50803590602081013590604001356121df565b34801561084257600080fd5b506104f361238b565b34801561085757600080fd5b506102cc612394565b60008060008060008561087281612557565b6108b5576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b6000600188815481106108c457fe5b60009182526020918290206040805160c08101825260069390930290910180548352600181015493830184905260028101546001600160a01b0316918301829052600381015460608401819052600482015460ff1615156080850181905260059092015460a0909401849052939c919b5092995091975095509350505050565b60235481565b60215460ff1661099a576040805162461bcd60e51b815260206004820152601660248201527514985b9ac81b9bdd081c1d589b1a5cda1959081e595d60521b604482015290519081900360640190fd5b602b5460ff166109f1576040805162461bcd60e51b815260206004820152601860248201527f5072697a6573206e6f7420616c6c6f6361746564207965740000000000000000604482015290519081900360640190fd5b806001600160a01b038116610a44576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b6001600160a01b038116301415610a8c5760405162461bcd60e51b81526004018080602001828103825260328152602001806130c96032913960400191505060405180910390fd5b81610a968161255e565b610ae7576040805162461bcd60e51b815260206004820152601f60248201527f4163636f756e742061646472657373206973206e6f7420612077696e6e657200604482015290519081900360640190fd5b601154600090819081906001600160a01b0387811691161415610b715750506011546025546026546001600160a01b0390921692509060019060ff1615610b5f5760405162461bcd60e51b815260040180806020018281038252602281526020018061313e6022913960400191505060405180910390fd5b6026805460ff19166001179055610cae565b6017546001600160a01b0387811691161415610bf45750506017546027546028546001600160a01b0390921692509060029060ff1615610be25760405162461bcd60e51b81526004018080602001828103825260238152602001806132466023913960400191505060405180910390fd5b6028805460ff19166001179055610cae565b601d546001600160a01b0387811691161415610c77575050601d54602954602a546001600160a01b0390921692509060039060ff1615610c655760405162461bcd60e51b815260040180806020018281038252602281526020018061319f6022913960400191505060405180910390fd5b602a805460ff19166001179055610cae565b60405162461bcd60e51b81526004018080602001828103825260438152602001806130fb6043913960600191505060405180910390fd5b6040805183815260ff831660208201524281830152905133916001600160a01b038616917f24cc64e111181860a0e50314e2717d8d86bc21fb600e5681040e47cd5eab7f079181900360600190a3826001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610d3757600080fd5b505af1158015610d4b573d6000803e3d6000fd5b5050505050505050505050565b610d61816125a5565b50565b610da08282808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506126e192505050565b5050565b600e5460ff16610df2576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b610dfb336121c9565b610e365760405162461bcd60e51b815260040180806020018281038252602b81526020018061304a602b913960400191505060405180910390fd5b828114610e745760405162461bcd60e51b81526004018080602001828103825260338152602001806131c16033913960400191505060405180910390fd5b6002548314610eb45760405162461bcd60e51b815260040180806020018281038252603f815260200180613160603f913960400191505060405180910390fd5b600060025411610f0b576040805162461bcd60e51b815260206004820152601d60248201527f4e6f20617070726f766564207465616d7320746f206576616c75617465000000604482015290519081900360640190fd5b336000908152600d602052604090206001810154600160a81b900460ff1615610f655760405162461bcd60e51b81526004018080602001828103825260228152602001806130286022913960400191505060405180910390fd5b60005b6002548110156110d3576000868683818110610f8057fe5b9050602002013590506000858584818110610f9757fe5b9050602002013560ff169050610fac82612557565b610fef576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b610ff882612711565b611040576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b611049816127a5565b61108a576040805162461bcd60e51b815260206004820152600d60248201526c496e76616c696420677261646560981b604482015290519081900360640190fd5b60006001838154811061109957fe5b906000526020600020906006020190506110c38260ff16826005015461247590919063ffffffff16565b6005909101555050600101610f68565b5060018101805460ff60a81b1916600160a81b17908190558154604080516001600160a01b0390931683525190917fd62869bbd78965284c34750092d78b62093e2d02b730d0ce696ebdcb371bb5dc919081900360200190a25050505050565b6001818154811061114357600080fd5b600091825260209091206006909102018054600182015460028301546003840154600485015460059095015493955091936001600160a01b039091169260ff9091169086565b611192336111dc565b6111cd5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6021805460ff19166001179055565b60006111e96004836127b1565b90505b919050565b6111fa33612818565b565b6000808080806001600160a01b038616611254576040805162461bcd60e51b8152602060048201526014602482015273496e76616c6964207a65726f206164647265737360601b604482015290519081900360640190fd5b505050506001600160a01b0391821660009081526020818152604091829020825160c0810184528154815260018201549281018390526002820154909516928501839052600381015460608601819052600482015460ff1615156080870181905260059092015460a09096018690529195929491935091565b600354610100900460ff1690565b6111fa33612848565b600354610100900460ff1615611336576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b61133f336111dc565b61137a5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612885565b60245481565b600f54601554601b54909192565b60035460009060ff166113e9576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b8360001a60f81b6001600160f81b03191661144b576040805162461bcd60e51b815260206004820152601960248201527f5465616d206e616d652063616e6e6f7420626520656d70747900000000000000604482015290519081900360640190fd5b6001600160a01b0383166114a6576040805162461bcd60e51b815260206004820152601b60248201527f5465616d20616464726573732063616e6e6f74206265207a65726f0000000000604482015290519081900360640190fd5b6001600160a01b038381166000908152602081905260409020600201541615611516576040805162461bcd60e51b815260206004820152601760248201527f5465616d20616c72656164792072656769737465726564000000000000000000604482015290519081900360640190fd5b600180546040805160c081018252828152602081018881526001600160a01b038881169383019384526060830188815260808401878152600060a08601818152888a018a559089905285517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660068a029081019190915594517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf786015595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8850180546001600160a01b0319169190941617909255517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9830155517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa8201805460ff191691151591909117905591517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb909201919091558254919290918390811061167e57fe5b600091825260208083206001600160a01b03808a1685529184905260409093206006909202909201805482556001808201548184015560028083015481850180546001600160a01b031916919096161790945560038083015490840155600480830154908401805460ff909216151560ff199092169190911790556005918201549190920155905461170f91612475565b600255604080518781526001602082015281516001600160a01b0388169285927f443b25596b838f2775d21b1153b87036f08c058fd4702446f1136ab26e5f3b90929081900390910190a350949350505050565b60035460ff166117b3576040805162461bcd60e51b8152602060048201526016602482015275149959da5cdd1c985d1a5bdb881a5cc818db1bdcd95960521b604482015290519081900360640190fd5b6117bc336111dc565b6117f75760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa6128d5565b60035460ff161561184e576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b600354610100900460ff16156118a0576040805162461bcd60e51b815260206004820152601260248201527129bab136b4b9b9b4b7b71034b99037b832b760711b604482015290519081900360640190fd5b600e5460ff16156118ed576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b6118f6336111dc565b6119315760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b60215460ff1615611982576040805162461bcd60e51b815260206004820152601660248201527514985b9ac8185b1c9958591e481c1d589b1a5cda195960521b604482015290519081900360640190fd5b6000600254116119cf576040805162461bcd60e51b8152602060048201526013602482015272139bc81d19585b5cc81c9959da5cdd195c9959606a1b604482015290519081900360640190fd5b6119d7612fd1565b6119df612fd1565b6119e7612fd1565b6119ef612fd1565b60005b600154811015611ada5760018181548110611a0957fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff16158015608083015260059092015460a0820152955080611a8157508160a001518560a00151105b15611a8b57611ad2565b8360a001518560a001511115611aa5578493929150611ad2565b8260a001518560a001511115611abe5784929150611ad2565b8160a001518560a001511115611ad2578491505b6001016119f2565b508251600f819055602080850151601055604080860151601180546001600160a01b03199081166001600160a01b0393841617918290556060808a01516012556080808b01516013805460ff1990811692151592909217905560a0808d015160148190558c516015558c8a01516016558c890151601780548816918a169190911790558c8501516018558c8401516019805485169115159190911790558c820151601a558b51601b558b8a0151601c558b890151601d8054909716908916179095558a840151601e558a830151601f805484169115159190911790558a01518855602180549091166001908117909155865198895293909416958701959095528584015292840192909252517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9281900390910190a1601554601754601a54604080519384526001600160a01b0390921660208401528282015260026060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a1601b54601d5460208054604080519485526001600160a01b03909316918401919091528282015260036060830152517f78bd43bbb342abb837e10002dd4fcda5ea371db518ce4e9aff10ab136441a99c9181900360800190a150505050565b611cce336111dc565b611d095760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612915565b600e5460ff1690565b611d24336111dc565b611d5f5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b602b805460ff19166001179055565b600e5460ff16611dbc576040805162461bcd60e51b8152602060048201526014602482015273115d985b1d585d1a5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b611dc5336111dc565b611e005760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612aa6565b611e11336111dc565b611e4c5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612818565b60225481565b600e5460ff1615611ea8576040805162461bcd60e51b815260206004820152601260248201527122bb30b63ab0ba34b7b71034b99037b832b760711b604482015290519081900360640190fd5b611eb1336111dc565b611eec5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612ae6565b60035460ff1615611f43576040805162461bcd60e51b81526020600482015260146024820152732932b3b4b9ba3930ba34b7b71034b99037b832b760611b604482015290519081900360640190fd5b611f4c336111dc565b611f875760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612b30565b60003411611fce5760405162461bcd60e51b81526004018080602001828103825260218152602001806130076021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a3565b60035460ff1690565b612019336111dc565b6120545760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b610d6181612b7a565b8161206781612557565b6120aa576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b826120b481612711565b6120fc576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600354610100900460ff1661214f576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b60006001858154811061215e57fe5b60009182526020918290206003600690920201908101869055600281015481546040805189815290519395506001600160a01b039092169390927fa44de9e6ce79675199796005de8516704078af25aaf78ab4be180213882560ee9281900390910190a35050505050565b60006111e96005836127b1565b610d6181612bf1565b6121e8336111dc565b6122235760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b602b5460ff161561227b576040805162461bcd60e51b815260206004820152601860248201527f5072697a657320616c726561647920616c6c6f63617465640000000000000000604482015290519081900360640190fd5b60006122918261228b8686612475565b90612475565b9050478111156122d25760405162461bcd60e51b81526004018080602001828103825260308152602001806132166030913960400191505060405180910390fd5b6040805180820182528581526000602091820181905260258790556026805460ff1990811690915583518085018552878152830182905260278790556028805482169055835180850185528681528301919091526029859055602a805482169055602b805490911660011790558151868152908101859052808201849052426060820152905133917f60e7ffaf15f306ac55b9117669d2fd27994d49f2ccf8490fc874df9ebb5706aa919081900360800190a250505050565b602b5460ff1690565b600354610100900460ff166123e7576040805162461bcd60e51b815260206004820152601460248201527314dd589b5a5cdcda5bdb881a5cc818db1bdcd95960621b604482015290519081900360640190fd5b6123f0336111dc565b61242b5760405162461bcd60e51b81526004018080602001828103825260338152602001806130756033913960400191505060405180910390fd5b6111fa612ccc565b61243e6004826124d6565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6000828201838110156124cf576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6124e082826127b1565b15612532576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b6001541190565b6011546000906001600160a01b038381169116148061258a57506017546001600160a01b038381169116145b806111e9575050601d546001600160a01b0390811691161490565b806125af81612557565b6125f2576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b816125fc81612711565b15612646576040805162461bcd60e51b81526020600482015260156024820152742a32b0b69034b9903737ba103932b83937bb32b21760591b604482015290519081900360640190fd5b60006001848154811061265557fe5b600091825260209091206004600690920201908101805460ff191660019081179091556002549192506126889190612475565b6002908155810154815460048301546040805160ff90921615158252516001600160a01b03909316927fd903780bcf5bcea81714ac3450a34cb3de7b0735a59883e1eb90edd901a54ad49181900360200190a350505050565b60005b8151811015610da0576127098282815181106126fc57fe5b6020026020010151612bf1565b6001016126e4565b600061271c82612557565b612728575060006111ec565b60006001838154811061273757fe5b60009182526020918290206040805160c08101825260069093029091018054835260018101549383019390935260028301546001600160a01b03169082015260038201546060820152600482015460ff1615156080820181905260059092015460a090910152915050919050565b600a60ff909116111590565b60006001600160a01b0382166127f85760405162461bcd60e51b81526004018080602001828103825260228152602001806131f46022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61282181612d17565b6001600160a01b03166000908152600d60205260409020600101805460ff60a01b19169055565b61285181612d54565b6001600160a01b0381166000908152600b60205260409020805460ff19169055600a5461287f906001612d96565b600a5550565b6003805461ff00191661010090811791829055604080519190920460ff161515815290517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b6003805460ff19169055604080516000815290517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b61291e81612dd8565b6000600c80549050905060006040518060800160405280838152602001846001600160a01b03168152602001600115158152602001600015158152509050600c8190806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550505080600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160010160146101000a81548160ff02191690831515021790555060608201518160010160156101000a81548160ff021916908315150217905550905050505050565b600e805460ff19169055604080516000815290517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b600e805460ff1916600117908190556040805160ff9290921615158252517f0266365b4830894a247179cbad20f3dfe40ba70917925976027d2af68d950bed9181900360200190a1565b6003805460ff1916600117908190556040805160ff9290921615158252517f78b477400a612eb4ec0a343596323cccfac06b27624264a549d8322c736d055c9181900360200190a1565b612b8381612433565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600b60205260409020805460ff191682179055600a5461287f91612475565b80612bfb81612557565b612c3e576040805162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d19585b481a59608a1b604482015290519081900360640190fd5b81612c4881612711565b612c90576040805162461bcd60e51b81526020600482015260146024820152731519585b481a5cc81b9bdd08185c1c1c9bdd995960621b604482015290519081900360640190fd5b600060018481548110612c9f57fe5b6000918252602090912060069091020160048101805460ff19169055600254909150612688906001612d96565b6003805461ff001916908190556040805161010090920460ff1615158252517f48fbf5c7b70581e7e2145562de373e14a5af56d09f9b96d73545d0d35f71f0889181900360200190a1565b612d2081612e4f565b6001600160a01b0381166000908152600860205260409020805460ff19169055600754612d4e906001612d96565b60075550565b612d5f600482612e91565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b60006124cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ef8565b612de181612f8f565b6006805460018082019092557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0384169081179091556000908152600860205260409020805460ff191682179055600754612d4e91612475565b612e5a600582612e91565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b612e9b82826127b1565b612ed65760405162461bcd60e51b81526004018080602001828103825260218152602001806130a86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008184841115612f875760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f4c578181015183820152602001612f34565b50505050905090810190601f168015612f795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b612f9a6005826124d6565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101919091529056fe6d73672e76616c7565206d757374206265206772656174686572207468616e20304a7564676520616c7265616479207375626d6974746564206576616c756174696f6e4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65416464726573732063616e6e6f7420626520657175616c20746f20636f6e7472616374202874686973292061646472657373496e76616c696420616464726573732e204164647265737320636865636b206661696c65642e2053686f756c64206e6f74207265616368207468697320706f696e742e5072697a6520616c7265616479207061696420666f7220666972737420706c6163657465616d7349647320616e642067726164657320646f206e6f74206d617463682074686520636f756e74696e67206f6620617070726f766564207465616d735072697a6520616c7265616479207061696420666f7220746869726420706c6163654c656e677468206f66207465616d7320616e64207465616d47726164657320617272617973206d75737420626520657175616c526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734e6f7420656e6f7567682066756e647320617661696c61626c6520696e206861636b6174686f6e20636f6e74726163745072697a6520616c7265616479207061696420666f72207365636f6e6420706c616365a2646970667358221220a049ae4a09d43d928ff132f23a91940e132f8a13443304498aee4e78aad892f164736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "106:495:13:-:0;;;148:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;148:140:13;;;;;;;;;;;;;;;;;254:10;;;;748:30:22;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;-1:-1:-1;2713:5:4;;-1:-1:-1;2719:1:4::1;::::0;-1:-1:-1;2713:8:4::1;;;:13:::0;::::1;2705:38;;;::::0;;-1:-1:-1;;;2705:38:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2705:38:4;;;;;;;;;;;;;::::1;;-1:-1:-1::0;2753:2:4::1;:8:::0;;;;2771:4:::1;:12:::0;2793:11:::1;:26:::0;-1:-1:-1;;2829:15:4::1;:23:::0;;-1:-1:-1;;2829:23:4::1;::::0;;-1:-1:-1;106:495:13;;1682:241:20;1750:28;1770:7;1750:19;;;;;:28;;:::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:21;;:25;;;;;:28;;:::i;:::-;1864:21;:52;-1:-1:-1;1682:241:20:o;1314:136:22:-;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;106:495:13:-;;;;;;;", + "deployedSourceMap": "106:495:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3411:293:3;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3411:293:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;878:19:4;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4017:1523;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4017:1523:4;-1:-1:-1;;;;;4017:1523:4;;:::i;:::-;;8420:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8420:83:3;;:::i;8795:98::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8795:98:3;;-1:-1:-1;8795:98:3;-1:-1:-1;8795:98:3;:::i;2743:1555:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2743:1555:1;;-1:-1:-1;2743:1555:1;-1:-1:-1;2743:1555:1;:::i;1152:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;397:92:13;;;;;;;;;;;;;:::i;1003:113:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1046:73:21;;;;;;;;;;;;;:::i;4144:332:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4144:332:3;-1:-1:-1;;;;;4144:332:3;;:::i;8046:101::-;;;;;;;;;;;;;:::i;1227:81:22:-;;;;;;;;;;;;;:::i;7475:117:1:-;;;;;;;;;;;;;:::i;903:26:4:-;;;;;;;;;;;;;:::i;6323:145:1:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4859:1108:3;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4859:1108:3;;;-1:-1:-1;;;;;4859:1108:3;;;;;;;;;;:::i;6599:123:1:-;;;;;;;;;;;;;:::i;4466:1656::-;;;;;;;;;;;;;:::i;1034:100:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1034:100:20;-1:-1:-1;;;;;1034:100:20;;:::i;8296:101:1:-;;;;;;;;;;;;;:::i;294:97:13:-;;;;;;;;;;;;;:::i;7775:102:1:-;;;;;;;;;;;;;:::i;1140:97:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:97:20;-1:-1:-1;;;;;1140:97:20;;:::i;855:17:4:-;;;;;;;;;;;;;:::i;8059:102:1:-;;;;;;;;;;;;;:::i;6852:123::-;;;;;;;;;;;;;:::i;396:183:18:-;;;:::i;7231:105:3:-;;;;;;;;;;;;;:::i;1122:99:22:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;6178:343:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6178:343:3;;;;;;;:::i;801:105:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;801:105:21;-1:-1:-1;;;;;801:105:21;;:::i;9164:83:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9164:83:3;;:::i;3246:632:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3246:632:4;;;;;;;;;;;;:::i;495:104:13:-;;;;;;;;;;;;;:::i;7167:117:1:-;;;;;;;;;;;;;:::i;3411:293:3:-;3517:7;3526;3535;3544:4;3550:7;3492:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;3573:16:::1;3592:5;3598:6;3592:13;;;;;;;;;::::0;;;::::1;::::0;;;;3573:32:::1;::::0;;::::1;::::0;::::1;::::0;;3592:13:::1;::::0;;;::::1;::::0;;::::1;3573:32:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3573:32:3::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;::::1;;;;::::0;;;;;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;;-1:-1:-1;3573:32:3;-1:-1:-1;3411:293:3;-1:-1:-1;;;;3411:293:3:o;878:19:4:-;;;;:::o;4017:1523::-;1701:13:1;;;;1693:48;;;;;-1:-1:-1;;;1693:48:1;;;;;;;;;;;;-1:-1:-1;;;1693:48:1;;;;;;;;;;;;;;;1769:15:4::1;::::0;::::1;;1761:52;;;::::0;;-1:-1:-1;;;1761:52:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;4158:13:::0;-1:-1:-1;;;;;2056:21:4;::::2;2048:54;;;::::0;;-1:-1:-1;;;2048:54:4;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2048:54:4;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;2120:24:4;::::2;2139:4;2120:24;;2112:87;;;;-1:-1:-1::0;;;2112:87:4::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4199:13:::3;1905:30;1921:13;1905:15;:30::i;:::-;1897:74;;;::::0;;-1:-1:-1;;;1897:74:4;;::::3;;::::0;::::3;::::0;::::3;::::0;;;;::::3;::::0;;;;;;;;;;;;;::::3;;4331:22:::0;;4228:19:::4;::::0;;;;;-1:-1:-1;;;;;4314:39:4;;::::4;4331:22:::0;::::4;4314:39;4310:1038;;;-1:-1:-1::0;;4383:22:4;;4428:15:::4;:22:::0;4503:20;;-1:-1:-1;;;;;4383:22:4;;::::4;::::0;-1:-1:-1;4428:22:4;4383;;4503:20:::4;;4502:21;4494:68;;;;-1:-1:-1::0;;;4494:68:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4576:20:::0;:27;;-1:-1:-1;;4576:27:4::4;4599:4;4576:27;::::0;;4310:1038:::4;;;4641:23:::0;;-1:-1:-1;;;;;4624:40:4;;::::4;4641:23:::0;::::4;4624:40;4620:728;;;-1:-1:-1::0;;4694:23:4;;4740:16:::4;:23:::0;4816:21;;-1:-1:-1;;;;;4694:23:4;;::::4;::::0;-1:-1:-1;4740:23:4;4694::::4;::::0;4816:21:::4;;4815:22;4807:70;;;;-1:-1:-1::0;;;4807:70:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4891:21:::0;:28;;-1:-1:-1;;4891:28:4::4;4915:4;4891:28;::::0;;4620:728:::4;;;4957:22:::0;;-1:-1:-1;;;;;4940:39:4;;::::4;4957:22:::0;::::4;4940:39;4936:412;;;-1:-1:-1::0;;5009:22:4;;5054:15:::4;:22:::0;5129:20;;-1:-1:-1;;;;;5009:22:4;;::::4;::::0;-1:-1:-1;5054:22:4;5105:1:::4;::::0;5129:20:::4;;5128:21;5120:68;;;;-1:-1:-1::0;;;5120:68:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5202:20:::0;:27;;-1:-1:-1;;5202:27:4::4;5225:4;5202:27;::::0;;4936:412:::4;;;5260:77;;-1:-1:-1::0;;;5260:77:4::4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4936:412;5363:72;::::0;;;;;::::4;::::0;::::4;;::::0;::::4;::::0;5419:15:::4;5363:72:::0;;;;;;5407:10:::4;::::0;-1:-1:-1;;;;;5363:72:4;::::4;::::0;::::4;::::0;;;;;;;::::4;5496:11;-1:-1:-1::0;;;;;5487:29:4::4;;5524:6;5487:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;;1981:1;;;2209::::3;1823::::2;4017:1523:::0;:::o;8420:83:3:-;8476:20;8489:6;8476:12;:20::i;:::-;8420:83;:::o;8795:98::-;8864:22;8878:7;;8864:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8864:13:3;;-1:-1:-1;;;8864:22:3:i;:::-;8795:98;;:::o;2743:1555:1:-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;710:19:21::1;718:10;710:7;:19::i;:::-;702:75;;;;-1:-1:-1::0;;;702:75:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:35:1::0;;::::2;2900:99;;;;-1:-1:-1::0;;;2900:99:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3048:18;::::0;3030:36;::::2;3009:146;;;;-1:-1:-1::0;;;3009:146:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3194:1;3173:18;;:22;3165:64;;;::::0;;-1:-1:-1;;;3165:64:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3276:10;3239:19;3261:26:::0;;;:14:::2;:26;::::0;;;;3306:11:::2;::::0;::::2;::::0;-1:-1:-1;;;3306:11:1;::::2;;;3305:12;3297:59;;;;-1:-1:-1::0;;;3297:59:1::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3371:9;3366:801;3390:18;;3386:1;:22;3366:801;;;3429:14;3446:7;;3454:1;3446:10;;;;;;;;;;;;;3429:27;;3470:11;3484:10;;3495:1;3484:13;;;;;;;;;;;;;;;3470:27;;3890:21;3904:6;3890:13;:21::i;:::-;3882:49;;;::::0;;-1:-1:-1;;;3882:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3882:49:1;;;;;;;;;;;;;::::2;;3953:22;3968:6;3953:14;:22::i;:::-;3945:55;;;::::0;;-1:-1:-1;;;3945:55:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3945:55:1;;;;;;;;;;;;;::::2;;4022:19;4035:5;4022:12;:19::i;:::-;4014:45;;;::::0;;-1:-1:-1;;;4014:45:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4014:45:1;;;;;;;;;;;;;::::2;;4074:17;4094:5;4100:6;4094:13;;;;;;;;;;;;;;;;;;4074:33;;4134:21;4149:5;4134:21;;:4;:10;;;:14;;:21;;;;:::i;:::-;4121:10;::::0;;::::2;:34:::0;-1:-1:-1;;3410:3:1::2;;3366:801;;;-1:-1:-1::0;4232:4:1::2;4218:11:::0;::::2;:18:::0;;-1:-1:-1;;;;4218:18:1::2;-1:-1:-1::0;;;4218:18:1::2;::::0;;;;4262:8;;4251:40:::2;::::0;;-1:-1:-1;;;;;4272:18:1;;::::2;4251:40:::0;;;4262:8;;4251:40:::2;::::0;;;;;::::2;::::0;;::::2;787:1:21;2743:1555:1::0;;;;:::o;1152:19:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1152:19:3;;-1:-1:-1;;;;;1152:19:3;;;;;;;;;;:::o;397:92:13:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:13:13::1;:20:::0;;-1:-1:-1;;462:20:13::1;478:4;462:20;::::0;;397:92::o;1003:113:22:-;1062:4;1085:24;:11;1101:7;1085:15;:24::i;:::-;1078:31;;1003:113;;;;:::o;1046:73:21:-;1088:24;1101:10;1088:12;:24::i;:::-;1046:73::o;4144:332:3:-;4212:7;;;;;-1:-1:-1;;;;;4272:25:3;;4264:58;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;-1:-1:-1;;;4264:58:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;4351:26:3;;;4332:16;4351:26;;;;;;;;;;;;4332:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4332:45:3;4144:332::o;8046:101::-;8123:17;;;;;;;;8046:101::o;1227:81:22:-;1273:28;1290:10;1273:16;:28::i;7475:117:1:-;2562:17:3;;;;;;;2561:18;2553:49;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:23:1::2;:21;:23::i;903:26:4:-:0;;;;:::o;6323:145:1:-;6416:10;:13;6431:11;:14;6447:10;:13;6323:145;;;:::o;4859:1108:3:-;2212:19;;5003:7;;2212:19;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;5034:8;5043:1:::1;5034:11;;;-1:-1:-1::0;;;;;;5034:16:3::1;5026:54;;;::::0;;-1:-1:-1;;;5026:54:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5098:25:3;::::1;5090:65;;;::::0;;-1:-1:-1;;;5090:65:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;5173:26:3;;::::1;5223:1;5173:26:::0;;;::::1;::::0;;;;;;:38:::1;;::::0;::::1;:52:::0;5165:88:::1;;;::::0;;-1:-1:-1;;;5165:88:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5280:5;:12:::0;;5679:58:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;5679:58:3;;::::1;::::0;;;;;;;;;;;;;;;;;;-1:-1:-1;5679:58:3;;;;;;5747:16;;::::1;::::0;;;;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5747:16:3::1;::::0;;;::::1;;::::0;;;;;;;;;;;;;;-1:-1:-1;;5747:16:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;;;;;;;;;;5802:13;;5280:12;;5679:58;;5280:12;;5802:13;::::1;;;;;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;5773:26:3;;::::1;::::0;;;;;;;;;;5802:13:::1;::::0;;::::1;::::0;;::::1;5773:42:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;5773:42:3::1;::::0;;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;5773:42:3;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;5846:18;;:25:::1;::::0;:22:::1;:25::i;:::-;5825:18;:46:::0;5886:51:::1;::::0;;;;;5932:4:::1;5886:51;::::0;::::1;::::0;;;-1:-1:-1;;;;;5886:51:3;::::1;::::0;5901:6;;5886:51:::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;5954:6:3;4859:1108;-1:-1:-1;;;;4859:1108:3:o;6599:123:1:-;2212:19:3;;;;2204:54;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;-1:-1:-1;;;2204:54:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:26:1::2;:24;:26::i;4466:1656::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;2562:17:::1;::::0;::::1;::::0;::::1;;;2561:18;2553:49;;;::::0;;-1:-1:-1;;;2553:49:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2553:49:3;;;;;;;;;;;;;::::1;;1592:17:1::2;::::0;::::2;;1591:18;1583:49;;;::::0;;-1:-1:-1;;;1583:49:1;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;::::2;;900:23:22::3;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:13:1::4;::::0;::::4;;1813:14;1805:49;;;::::0;;-1:-1:-1;;;1805:49:1;;::::4;;::::0;::::4;::::0;::::4;::::0;;;;-1:-1:-1;;;1805:49:1;;;;;;;;;;;;;::::4;;4683:1:::5;4662:18;;:22;4654:54;;;::::0;;-1:-1:-1;;;4654:54:1;;::::5;;::::0;::::5;::::0;::::5;::::0;;;;-1:-1:-1;;;4654:54:1;;;;;;;;;;;;;::::5;;4718:19;;:::i;:::-;4747:20;;:::i;:::-;4777:21;;:::i;:::-;4808:20;;:::i;:::-;4844:9;4839:881;4863:5;:12:::0;4859:16;::::5;4839:881;;;4906:5;4912:1;4906:8;;;;;;;;;::::0;;;::::5;::::0;;;;4896:18:::5;::::0;;::::5;::::0;::::5;::::0;;4906:8:::5;::::0;;::::5;::::0;;::::5;4896:18:::0;;;;::::5;::::0;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;::::5;::::0;-1:-1:-1;;;;;4896:18:1::5;::::0;;;;::::5;::::0;::::5;::::0;;;;;::::5;::::0;::::5;::::0;::::5;;;::::0;::::5;::::0;;;;::::5;::::0;;::::5;::::0;;;;;;-1:-1:-1;4896:18:1;4932:51:::5;;;4969:8;:14;;;4953:7;:13;;;:30;4932:51;4928:213;;;5118:8;;4928:213;5341:8;:14;;;5325:7;:13;;;:30;5321:389;;;5462:7:::0;;5425:8;5386:9;-1:-1:-1;5321:389:1::5;;;5510:9;:15;;;5494:7;:13;;;:31;5490:220;;;5595:7:::0;;5556:9;-1:-1:-1;5490:220:1::5;;;5643:8;:14;;;5627:7;:13;;;:30;5623:87;;;5688:7;5677:18;;5623:87;4877:3;;4839:881;;;-1:-1:-1::0;5730:21:1;;:10:::5;:21:::0;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;;;;;5730:21:1;;::::5;-1:-1:-1::0;;;;;5730:21:1;;::::5;;::::0;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;::::5;::::0;;;;-1:-1:-1;;5730:21:1;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;::::5;::::0;;::::5;::::0;;;;;5761:23;;:11:::5;:23:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;::::5;::::0;;;::::5;::::0;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;;::::5;::::0;;;5794:21;;:10:::5;:21:::0;;;::::5;::::0;;;;;::::5;::::0;;;;;;::::5;::::0;;::::5;;::::0;;;;;::::5;::::0;;;;;::::5;::::0;;;;;::::5;::::0;::::5;;::::0;;;::::5;::::0;;;::::5;::::0;;;5825:13:::5;:20:::0;;;;::::5;-1:-1:-1::0;5825:20:1;;::::5;::::0;;;5860:74;;;;;5890:22;;;::::5;5860:74:::0;;::::5;::::0;;;;;;;;;;;;;;;;::::5;::::0;;;;;;;;::::5;5964:11;:14:::0;5980:23;;6005:17;;5949:77:::5;::::0;;;;;-1:-1:-1;;;;;5980:23:1;;::::5;5949:77;::::0;::::5;::::0;;;;;5980:23:::5;5949:77:::0;;;;;::::5;::::0;;;;;;;::::5;6056:10;:13:::0;6071:22;;6095:16;;;6041:74:::5;::::0;;;;;-1:-1:-1;;;;;6071:22:1;;::::5;6041:74:::0;;::::5;::::0;;;;;;;;6113:1:::5;6041:74:::0;;;;;::::5;::::0;;;;;;;::::5;1864:1;;;;4466:1656::o:0;1034:100:20:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:18:20::1;1119:7;1109:9;:18::i;8296:101:1:-:0;8373:17;;;;8296:101;:::o;294:97:13:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;362:15:13::1;:22:::0;;-1:-1:-1;;362:22:13::1;380:4;362:22;::::0;;294:97::o;7775:102:1:-;1477:17;;;;1469:50;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;-1:-1:-1;;;1469:50:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7852:18:1::2;:16;:18::i;1140:97:20:-:0;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1209:21:20::1;1222:7;1209:12;:21::i;855:17:4:-:0;;;;:::o;8059:102:1:-;1592:17;;;;1591:18;1583:49;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;-1:-1:-1;;;1583:49:1;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8137:17:1::2;:15;:17::i;6852:123::-:0;2333:19:3;;;;2332:20;2324:53;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;-1:-1:-1;;;2324:53:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6943:25:1::2;:23;:25::i;396:183:18:-:0;471:1;459:9;:13;451:59;;;;-1:-1:-1;;;451:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:47;;;545:9;525:47;;;;556:15;;533:10;;525:47;;;;;;;;;396:183::o;7231:105:3:-;7310:19;;;;7231:105;:::o;1122:99:22:-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;6178:343:3:-:0;6281:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;6312:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;2447:17:::2;::::0;::::2;::::0;::::2;;;2439:50;;;::::0;;-1:-1:-1;;;2439:50:3;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;::::2;;6359:17:::3;6379:5;6385:6;6379:13;;;;;;;;;::::0;;;::::3;::::0;;;;6402:17:::3;6379:13;::::0;;::::3;;6402:17:::0;;::::3;:32:::0;;;6478:16:::3;::::0;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;6379:13;;-1:-1:-1;;;;;;6478:16:3;;::::3;::::0;6469:7;;6449:65:::3;::::0;;;;;;;;::::3;2499:1;2732::::1;6178:343:::0;;;:::o;801:105:21:-;856:4;879:20;:7;891;879:11;:20::i;9164:83:3:-;9220:20;9233:6;9220:12;:20::i;3246:632:4:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1653:15:4::1;::::0;::::1;;1652:16;1644:53;;;::::0;;-1:-1:-1;;;1644:53:4;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;3413:19:::2;3435:43;3467:10:::0;3435:27:::2;:10:::0;3450:11;3435:14:::2;:27::i;:::-;:31:::0;::::2;:43::i;:::-;3413:65;;3511:21;3496:11;:36;;3488:97;;;;-1:-1:-1::0;;;3488:97:4::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3613:24;::::0;;;;::::2;::::0;;;;;-1:-1:-1;3613:24:4::2;::::0;;::::2;::::0;;;3595:15:::2;:42:::0;;;;;;-1:-1:-1;;3595:42:4;;::::2;::::0;;;3666:25;;;;::::2;::::0;;;;;;::::2;::::0;;;3647:16:::2;:44:::0;;;;;;;::::2;::::0;;3719:24;;;;::::2;::::0;;;;;;::::2;::::0;;;;3701:15:::2;:42:::0;;;;;;;::::2;::::0;;3753:15:::2;:22:::0;;;;::::2;3613:24:::0;3753:22:::2;::::0;;3790:81;;;;;;;::::2;::::0;;;;;;;;;3855:15:::2;3790:81:::0;;;;;;3843:10:::2;::::0;3790:81:::2;::::0;;;;;;;;::::2;1707:1;3246:632:::0;;;:::o;495:104:13:-;577:15;;;;495:104;:::o;7167:117:1:-;2447:17:3;;;;;;;2439:50;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;-1:-1:-1;;;2439:50:3;;;;;;;;;;;;;;;900:23:22::1;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1::0;;;892:87:22::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:24:1::2;:22;:24::i;1314:136:22:-:0;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;882:176:24:-;940:7;971:5;;;994:6;;;;986:46;;;;;-1:-1:-1;;;986:46:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1050:1;882:176;-1:-1:-1;;;882:176:24:o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;10872:115:3:-;10967:5;:12;-1:-1:-1;10958:21:3;10872:115::o;5624:282:4:-;5748:22;;5694:4;;-1:-1:-1;;;;;5731:39:4;;;5748:22;;5731:39;;:99;;-1:-1:-1;5807:23:4;;-1:-1:-1;;;;;5790:40:4;;;5807:23;;5790:40;5731:99;:158;;;-1:-1:-1;;5867:22:4;;-1:-1:-1;;;;;5867:22:4;;;5850:39;;;;5624:282::o;9977:300:3:-;10036:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10059:6:::1;2934:22;2949:6;2934:14;:22::i;:::-;2933:23;2925:57;;;::::0;;-1:-1:-1;;;2925:57:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2925:57:3;;;;;;;;;;;;;::::1;;10077:17:::2;10097:5;10103:6;10097:13;;;;;;;;;::::0;;;::::2;::::0;;;10120::::2;10097;::::0;;::::2;;10120::::0;;::::2;:20:::0;;-1:-1:-1;;10120:20:3::2;10136:4;10120:20:::0;;::::2;::::0;;;10171:18:::2;::::0;10097:13;;-1:-1:-1;10171:25:3::2;::::0;:18;:22:::2;:25::i;:::-;10150:18;:46:::0;;;10238:16;::::2;::::0;10229:7;;10256:13:::2;::::0;::::2;::::0;10211:59:::2;::::0;;10256:13:::2;::::0;;::::2;10211:59;;::::0;;;-1:-1:-1;;;;;10238:16:3;;::::2;::::0;10211:59:::2;::::0;;;;::::2;::::0;;::::2;2992:1;2732::::1;9977:300:::0;;:::o;10319:168::-;10392:9;10387:94;10411:7;:14;10407:1;:18;10387:94;;;10446:24;10459:7;10467:1;10459:10;;;;;;;;;;;;;;10446:12;:24::i;:::-;10427:3;;10387:94;;11029:223;11092:4;11113:21;11127:6;11113:13;:21::i;:::-;11108:65;;-1:-1:-1;11157:5:3;11150:12;;11108:65;11183:16;11202:5;11208:6;11202:13;;;;;;;;;;;;;;;;;11183:32;;;;;;;;11202:13;;;;;;;11183:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11183:32:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11029:223:3;;;:::o;9940:115:1:-;10045:2;10036:11;;;;;;;9940:115::o;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;9515:243:1:-;9582:27;9601:7;9582:18;:27::i;:::-;-1:-1:-1;;;;;9641:23:1;9619:19;9641:23;;;:14;:23;;;;;9674:12;;:20;;-1:-1:-1;;;;9674:20:1;;;9515:243::o;1929:214:20:-;2000:31;2023:7;2000:22;:31::i;:::-;-1:-1:-1;;;;;2041:25:20;;2069:5;2041:25;;;:16;:25;;;;;:33;;-1:-1:-1;;2041:33:20;;;2108:21;;:28;;2041:33;2108:25;:28::i;:::-;2084:21;:52;-1:-1:-1;1929:214:20:o;9801:134:3:-;9847:17;:24;;-1:-1:-1;;9847:24:3;;;;;;;;;9886:42;;;9910:17;;;;9847:24;9910:17;9886:42;;;;;;;;;;;;;;;9801:134::o;9289:144::-;9338:19;:27;;-1:-1:-1;;9338:27:3;;;9380:46;;;9360:5;9380:46;;;;;;;;;;;;;9289:144::o;8915:481:1:-;9127:24;9143:7;9127:15;:24::i;:::-;9161:13;9177:10;:17;;;;9161:33;;9204:18;9225:34;;;;;;;;9231:5;9225:34;;;;9238:7;-1:-1:-1;;;;;9225:34:1;;;;;9247:4;9225:34;;;;;;9253:5;9225:34;;;;;9204:55;;9269:10;9285:5;9269:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9269:22:1;;;;;-1:-1:-1;;;;;9269:22:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9327:5;9301:14;:23;9316:7;-1:-1:-1;;;;;9301:23:1;-1:-1:-1;;;;;9301:23:1;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9301:31:1;;;;;-1:-1:-1;;;;;9301:31:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8915:481;;;:::o;8462:136::-;8509:17;:25;;-1:-1:-1;;8509:25:1;;;8549:42;;;8529:5;8549:42;;;;;;;;;;;;;8462:136::o;8662:134::-;8708:17;:24;;-1:-1:-1;;8708:24:1;8728:4;8708:24;;;;;8747:42;;;8708:24;8771:17;;;;8747:42;;;;;;;;;;;;;;8662:134::o;9475:142:3:-;9523:19;:26;;-1:-1:-1;;9523:26:3;9545:4;9523:26;;;;;9564:46;;;9523:26;9590:19;;;;9564:46;;;;;;;;;;;;;;9475:142::o;1682:241:20:-;1750:28;1770:7;1750:19;:28::i;:::-;1788:10;:24;;;;;;;;;;;;;-1:-1:-1;;;;;;1788:24:20;-1:-1:-1;;;;;1788:24:20;;;;;;;;-1:-1:-1;1822:25:20;;;:16;1788:24;1822:25;;;;:32;;-1:-1:-1;;1822:32:20;;;;;1888:21;;:28;;:25;:28::i;10529:301:3:-;10588:6;2681:21;2695:6;2681:13;:21::i;:::-;2673:49;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;-1:-1:-1;;;2673:49:3;;;;;;;;;;;;;;;10611:6:::1;2804:22;2819:6;2804:14;:22::i;:::-;2796:55;;;::::0;;-1:-1:-1;;;2796:55:3;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2796:55:3;;;;;;;;;;;;;::::1;;10629:17:::2;10649:5;10655:6;10649:13;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;;::::2;;10672;::::0;::::2;:21:::0;;-1:-1:-1;;10672:21:3::2;::::0;;10724:18:::2;::::0;10649:13;;-1:-1:-1;10724:25:3::2;::::0;-1:-1:-1;10724:22:3::2;:25::i;9623:136::-:0;9670:17;:25;;-1:-1:-1;;9670:25:3;;;;;9710:42;;;9670:25;9734:17;;;9670:25;9734:17;9710:42;;;;;;;;;;;;;;9623:136::o;1474:202:20:-;1549:27;1568:7;1549:18;:27::i;:::-;-1:-1:-1;;;;;1586:21:20;;1610:5;1586:21;;;:12;:21;;;;;:29;;-1:-1:-1;;1586:29:20;;;1645:17;;:24;;1586:29;1645:21;:24::i;:::-;1625:17;:44;-1:-1:-1;1474:202:20:o;1456:144:22:-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;1329:134:24:-;1387:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;1243:225:20:-;1315:24;1331:7;1315:15;:24::i;:::-;1349:6;:20;;;;;;;;;;;;;-1:-1:-1;;;;;;1349:20:20;-1:-1:-1;;;;;1349:20:20;;;;;;;;-1:-1:-1;1379:21:20;;;:12;1349:20;1379:21;;;;:28;;-1:-1:-1;;1379:28:20;;;;;1437:17;;:24;;:21;:24::i;1255:132:21:-;1321:23;:7;1336;1321:14;:23::i;:::-;1359:21;;-1:-1:-1;;;;;1359:21:21;;;;;;;;1255:132;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o;1754:187:24:-;1840:7;1875:12;1867:6;;;;1859:29;;;;-1:-1:-1;;;1859:29:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1910:5:24;;;1754:187::o;1125:124:21:-;1188:20;:7;1200;1188:11;:20::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../core/Hackathon.sol\";\n\ncontract HackathonMock is Hackathon {\n constructor(uint256 _id, bytes32 _name, bytes32 _description)\n Hackathon(_id, _name, _description, msg.sender)\n {\n //\n }\n\n function dummyAllocatePrizesMock() external onlyOrganizer {\n prizesAllocated = true;\n }\n\n function dummyPublishRankMock() external onlyOrganizer {\n rankPublished = true;\n }\n\n function getPrizeAllocationStatus() external view returns (bool) {\n return prizesAllocated;\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol", "exportedSymbols": { - "HackathonMock": [2707] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "HackathonMock": [2818], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2708, + "id": 2819, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2658, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2769, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "40:31:13" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "file": "../core/Hackathon.sol", - "id": 2659, + "id": 2770, "nodeType": "ImportDirective", - "scope": 2708, - "sourceUnit": 2090, - "src": "25:31:13", + "scope": 2819, + "sourceUnit": 2175, + "src": "73:31:13", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2660, + "id": 2771, "name": "Hackathon", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "84:9:13", + "referencedDeclaration": 2174, + "src": "132:9:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } }, - "id": 2661, + "id": 2772, "nodeType": "InheritanceSpecifier", - "src": "84:9:13" + "src": "132:9:13" } ], - "contractDependencies": [648, 1698, 2089, 2869, 2903, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 2174, 2987, 3026, 3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2707, - "linearizedBaseContracts": [2707, 2089, 648, 3195, 3287, 3401, 1698, 2903, 2869], + "id": 2818, + "linearizedBaseContracts": [2818, 2174, 674, 3326, 3416, 3532, 1772, 3026, 2987], "name": "HackathonMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2677, + "id": 2788, "nodeType": "Block", - "src": "237:18:13", + "src": "270:18:13", "statements": [] }, - "documentation": null, - "id": 2678, + "id": 2789, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2670, + "id": 2781, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2663, - "src": "195:3:13", + "referencedDeclaration": 2774, + "src": "228:3:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2671, + "id": 2782, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2665, - "src": "200:5:13", + "referencedDeclaration": 2776, + "src": "233:5:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2672, + "id": 2783, "name": "_description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "207:12:13", + "referencedDeclaration": 2778, + "src": "240:12:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2673, + "id": 2784, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "221:3:13", + "referencedDeclaration": 4294967281, + "src": "254:3:13", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2674, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "221:10:13", + "src": "254:10:13", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2675, + "id": 2786, "modifierName": { - "argumentTypes": null, - "id": 2669, + "id": 2780, "name": "Hackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2089, - "src": "185:9:13", + "referencedDeclaration": 2174, + "src": "218:9:13", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Hackathon_$2089_$", + "typeIdentifier": "t_type$_t_contract$_Hackathon_$2174_$", "typeString": "type(contract Hackathon)" } }, "nodeType": "ModifierInvocation", - "src": "185:47:13" + "src": "218:47:13" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2668, + "id": 2779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2663, + "id": 2774, + "mutability": "mutable", "name": "_id", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "112:11:13", + "scope": 2789, + "src": "160:11:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1137,25 +1069,25 @@ "typeString": "uint256" }, "typeName": { - "id": 2662, + "id": 2773, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "112:7:13", + "src": "160:7:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2665, + "id": 2776, + "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "125:13:13", + "scope": 2789, + "src": "173:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1163,25 +1095,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 2664, + "id": 2775, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "125:7:13", + "src": "173:7:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2667, + "id": 2778, + "mutability": "mutable", "name": "_description", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "140:20:13", + "scope": 2789, + "src": "188:20:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1189,55 +1121,52 @@ "typeString": "bytes32" }, "typeName": { - "id": 2666, + "id": 2777, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "140:7:13", + "src": "188:7:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "111:50:13" + "src": "159:50:13" }, "returnParameters": { - "id": 2676, + "id": 2787, "nodeType": "ParameterList", "parameters": [], - "src": "237:0:13" + "src": "270:0:13" }, - "scope": 2707, - "src": "100:155:13", + "scope": 2818, + "src": "148:140:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2687, + "id": 2798, "nodeType": "Block", - "src": "319:39:13", + "src": "352:39:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2685, + "id": 2796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2683, + "id": 2794, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "329:15:13", + "referencedDeclaration": 1804, + "src": "362:15:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1246,102 +1175,96 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2684, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "347:4:13", - "subdenomination": null, + "src": "380:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "329:22:13", + "src": "362:22:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2686, + "id": 2797, "nodeType": "ExpressionStatement", - "src": "329:22:13" + "src": "362:22:13" } ] }, - "documentation": null, - "id": 2688, + "functionSelector": "a72418a4", + "id": 2799, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2681, + "id": 2792, "modifierName": { - "argumentTypes": null, - "id": 2680, + "id": 2791, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "305:13:13", + "referencedDeclaration": 3465, + "src": "338:13:13", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "305:13:13" + "src": "338:13:13" } ], "name": "dummyAllocatePrizesMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2679, + "id": 2790, "nodeType": "ParameterList", "parameters": [], - "src": "293:2:13" + "src": "326:2:13" }, "returnParameters": { - "id": 2682, + "id": 2793, "nodeType": "ParameterList", "parameters": [], - "src": "319:0:13" + "src": "352:0:13" }, - "scope": 2707, - "src": "261:97:13", + "scope": 2818, + "src": "294:97:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2697, + "id": 2808, "nodeType": "Block", - "src": "419:37:13", + "src": "452:37:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2695, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2693, + "id": 2804, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "429:13:13", + "referencedDeclaration": 95, + "src": "462:13:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1350,131 +1273,127 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2694, + "id": 2805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "445:4:13", - "subdenomination": null, + "src": "478:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "429:20:13", + "src": "462:20:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2696, + "id": 2807, "nodeType": "ExpressionStatement", - "src": "429:20:13" + "src": "462:20:13" } ] }, - "documentation": null, - "id": 2698, + "functionSelector": "400feb02", + "id": 2809, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2691, + "id": 2802, "modifierName": { - "argumentTypes": null, - "id": 2690, + "id": 2801, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "405:13:13", + "referencedDeclaration": 3465, + "src": "438:13:13", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "405:13:13" + "src": "438:13:13" } ], "name": "dummyPublishRankMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2689, + "id": 2800, "nodeType": "ParameterList", "parameters": [], - "src": "393:2:13" + "src": "426:2:13" }, "returnParameters": { - "id": 2692, + "id": 2803, "nodeType": "ParameterList", "parameters": [], - "src": "419:0:13" + "src": "452:0:13" }, - "scope": 2707, - "src": "364:92:13", + "scope": 2818, + "src": "397:92:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2705, + "id": 2816, "nodeType": "Block", - "src": "527:39:13", + "src": "560:39:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2703, + "id": 2814, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "544:15:13", + "referencedDeclaration": 1804, + "src": "577:15:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2702, - "id": 2704, + "functionReturnParameters": 2813, + "id": 2815, "nodeType": "Return", - "src": "537:22:13" + "src": "570:22:13" } ] }, - "documentation": null, - "id": 2706, + "functionSelector": "ff918651", + "id": 2817, "implemented": true, "kind": "function", "modifiers": [], "name": "getPrizeAllocationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 2699, + "id": 2810, "nodeType": "ParameterList", "parameters": [], - "src": "495:2:13" + "src": "528:2:13" }, "returnParameters": { - "id": 2702, + "id": 2813, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2701, + "id": 2812, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2706, - "src": "521:4:13", + "scope": 2817, + "src": "554:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,203 +1401,204 @@ "typeString": "bool" }, "typeName": { - "id": 2700, + "id": 2811, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "521:4:13", + "src": "554:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "520:6:13" + "src": "553:6:13" }, - "scope": 2707, - "src": "462:104:13", + "scope": 2818, + "src": "495:104:13", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2708, - "src": "58:510:13" + "scope": 2819, + "src": "106:495:13" } ], - "src": "0:569:13" + "src": "40:562:13" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/HackathonMock.sol", "exportedSymbols": { - "HackathonMock": [2707] + "ContestBracketRegistry": [674], + "ContestRoleManager": [3326], + "ContestTeamRegistry": [1772], + "Hackathon": [2174], + "HackathonMock": [2818], + "IPayable": [2987], + "JudgeRole": [3416], + "OrganizerRole": [3532], + "Payable": [3026], + "Roles": [3618], + "SafeMath": [3814] }, - "id": 2708, + "id": 2819, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2658, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2769, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "40:31:13" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/core/Hackathon.sol", "file": "../core/Hackathon.sol", - "id": 2659, + "id": 2770, "nodeType": "ImportDirective", - "scope": 2708, - "sourceUnit": 2090, - "src": "25:31:13", + "scope": 2819, + "sourceUnit": 2175, + "src": "73:31:13", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2660, + "id": 2771, "name": "Hackathon", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2089, - "src": "84:9:13", + "referencedDeclaration": 2174, + "src": "132:9:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_Hackathon_$2089", + "typeIdentifier": "t_contract$_Hackathon_$2174", "typeString": "contract Hackathon" } }, - "id": 2661, + "id": 2772, "nodeType": "InheritanceSpecifier", - "src": "84:9:13" + "src": "132:9:13" } ], - "contractDependencies": [648, 1698, 2089, 2869, 2903, 3195, 3287, 3401], + "contractDependencies": [674, 1772, 2174, 2987, 3026, 3326, 3416, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2707, - "linearizedBaseContracts": [2707, 2089, 648, 3195, 3287, 3401, 1698, 2903, 2869], + "id": 2818, + "linearizedBaseContracts": [2818, 2174, 674, 3326, 3416, 3532, 1772, 3026, 2987], "name": "HackathonMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2677, + "id": 2788, "nodeType": "Block", - "src": "237:18:13", + "src": "270:18:13", "statements": [] }, - "documentation": null, - "id": 2678, + "id": 2789, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, - "id": 2670, + "id": 2781, "name": "_id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2663, - "src": "195:3:13", + "referencedDeclaration": 2774, + "src": "228:3:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2671, + "id": 2782, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2665, - "src": "200:5:13", + "referencedDeclaration": 2776, + "src": "233:5:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, - "id": 2672, + "id": 2783, "name": "_description", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "207:12:13", + "referencedDeclaration": 2778, + "src": "240:12:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2673, + "id": 2784, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "221:3:13", + "referencedDeclaration": 4294967281, + "src": "254:3:13", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2674, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "221:10:13", + "src": "254:10:13", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2675, + "id": 2786, "modifierName": { - "argumentTypes": null, - "id": 2669, + "id": 2780, "name": "Hackathon", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2089, - "src": "185:9:13", + "referencedDeclaration": 2174, + "src": "218:9:13", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Hackathon_$2089_$", + "typeIdentifier": "t_type$_t_contract$_Hackathon_$2174_$", "typeString": "type(contract Hackathon)" } }, "nodeType": "ModifierInvocation", - "src": "185:47:13" + "src": "218:47:13" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2668, + "id": 2779, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2663, + "id": 2774, + "mutability": "mutable", "name": "_id", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "112:11:13", + "scope": 2789, + "src": "160:11:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1686,25 +1606,25 @@ "typeString": "uint256" }, "typeName": { - "id": 2662, + "id": 2773, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "112:7:13", + "src": "160:7:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2665, + "id": 2776, + "mutability": "mutable", "name": "_name", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "125:13:13", + "scope": 2789, + "src": "173:13:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1712,25 +1632,25 @@ "typeString": "bytes32" }, "typeName": { - "id": 2664, + "id": 2775, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "125:7:13", + "src": "173:7:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2667, + "id": 2778, + "mutability": "mutable", "name": "_description", "nodeType": "VariableDeclaration", - "scope": 2678, - "src": "140:20:13", + "scope": 2789, + "src": "188:20:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1738,55 +1658,52 @@ "typeString": "bytes32" }, "typeName": { - "id": 2666, + "id": 2777, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "140:7:13", + "src": "188:7:13", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "value": null, "visibility": "internal" } ], - "src": "111:50:13" + "src": "159:50:13" }, "returnParameters": { - "id": 2676, + "id": 2787, "nodeType": "ParameterList", "parameters": [], - "src": "237:0:13" + "src": "270:0:13" }, - "scope": 2707, - "src": "100:155:13", + "scope": 2818, + "src": "148:140:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2687, + "id": 2798, "nodeType": "Block", - "src": "319:39:13", + "src": "352:39:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2685, + "id": 2796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2683, + "id": 2794, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "329:15:13", + "referencedDeclaration": 1804, + "src": "362:15:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1795,102 +1712,96 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2684, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "347:4:13", - "subdenomination": null, + "src": "380:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "329:22:13", + "src": "362:22:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2686, + "id": 2797, "nodeType": "ExpressionStatement", - "src": "329:22:13" + "src": "362:22:13" } ] }, - "documentation": null, - "id": 2688, + "functionSelector": "a72418a4", + "id": 2799, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2681, + "id": 2792, "modifierName": { - "argumentTypes": null, - "id": 2680, + "id": 2791, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "305:13:13", + "referencedDeclaration": 3465, + "src": "338:13:13", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "305:13:13" + "src": "338:13:13" } ], "name": "dummyAllocatePrizesMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2679, + "id": 2790, "nodeType": "ParameterList", "parameters": [], - "src": "293:2:13" + "src": "326:2:13" }, "returnParameters": { - "id": 2682, + "id": 2793, "nodeType": "ParameterList", "parameters": [], - "src": "319:0:13" + "src": "352:0:13" }, - "scope": 2707, - "src": "261:97:13", + "scope": 2818, + "src": "294:97:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2697, + "id": 2808, "nodeType": "Block", - "src": "419:37:13", + "src": "452:37:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2695, + "id": 2806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2693, + "id": 2804, "name": "rankPublished", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "429:13:13", + "referencedDeclaration": 95, + "src": "462:13:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1899,131 +1810,127 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2694, + "id": 2805, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "445:4:13", - "subdenomination": null, + "src": "478:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "429:20:13", + "src": "462:20:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2696, + "id": 2807, "nodeType": "ExpressionStatement", - "src": "429:20:13" + "src": "462:20:13" } ] }, - "documentation": null, - "id": 2698, + "functionSelector": "400feb02", + "id": 2809, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2691, + "id": 2802, "modifierName": { - "argumentTypes": null, - "id": 2690, + "id": 2801, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "405:13:13", + "referencedDeclaration": 3465, + "src": "438:13:13", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "405:13:13" + "src": "438:13:13" } ], "name": "dummyPublishRankMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2689, + "id": 2800, "nodeType": "ParameterList", "parameters": [], - "src": "393:2:13" + "src": "426:2:13" }, "returnParameters": { - "id": 2692, + "id": 2803, "nodeType": "ParameterList", "parameters": [], - "src": "419:0:13" + "src": "452:0:13" }, - "scope": 2707, - "src": "364:92:13", + "scope": 2818, + "src": "397:92:13", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2705, + "id": 2816, "nodeType": "Block", - "src": "527:39:13", + "src": "560:39:13", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2703, + "id": 2814, "name": "prizesAllocated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "544:15:13", + "referencedDeclaration": 1804, + "src": "577:15:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2702, - "id": 2704, + "functionReturnParameters": 2813, + "id": 2815, "nodeType": "Return", - "src": "537:22:13" + "src": "570:22:13" } ] }, - "documentation": null, - "id": 2706, + "functionSelector": "ff918651", + "id": 2817, "implemented": true, "kind": "function", "modifiers": [], "name": "getPrizeAllocationStatus", "nodeType": "FunctionDefinition", "parameters": { - "id": 2699, + "id": 2810, "nodeType": "ParameterList", "parameters": [], - "src": "495:2:13" + "src": "528:2:13" }, "returnParameters": { - "id": 2702, + "id": 2813, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2701, + "id": 2812, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2706, - "src": "521:4:13", + "scope": 2817, + "src": "554:4:13", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2031,42 +1938,42 @@ "typeString": "bool" }, "typeName": { - "id": 2700, + "id": 2811, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "521:4:13", + "src": "554:4:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "520:6:13" + "src": "553:6:13" }, - "scope": 2707, - "src": "462:104:13", + "scope": 2818, + "src": "495:104:13", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2708, - "src": "58:510:13" + "scope": 2819, + "src": "106:495:13" } ], - "src": "0:569:13" + "src": "40:562:13" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.510Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.099Z", "devdoc": { + "kind": "dev", "methods": { "allocatePrize(uint256,uint256,uint256)": { "details": "It does not associate the prize with a specific account, since prizes cound be associated any moment by the organizers, as long as prizes were not allocated before. The contract needs to have enought balance to allocate funds to winners." @@ -2087,28 +1994,50 @@ "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." }, "getEvaluationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getRegistrationStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getSubmissionStatus()": { - "return": "{bool} returns {true} if enabled; otherwise, {false}." + "returns": { + "_0": "{bool} returns {true} if enabled; otherwise, {false}." + } }, "getTeam(uint256)": { "params": { "teamId": "{uint256} the team's unique identifier returned on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getTeamByAddress(address)": { "params": { "teamAddress": "{address} the team's contract address used on registration" }, - "return": "{bytes32} team's name{address} team's address{bytes32} team's proposal data{bool} team's status: {true} for approved; {false} for reproved;{uint256} team's grade" + "returns": { + "_0": "{bytes32} team's name", + "_1": "{address} team's address", + "_2": "{bytes32} team's proposal data", + "_3": "{bool} team's status: {true} for approved; {false} for reproved;", + "_4": "{uint256} team's grade" + } }, "getWinnersIds()": { - "return": "{uint256} First place's id{uint256} Second place's id{uint256} Third place's id" + "returns": { + "_0": "{uint256} First place's id", + "_1": "{uint256} Second place's id", + "_2": "{uint256} Third place's id" + } }, "openEvaluation()": { "details": "Should be overwritten on inherited contract to add modifier or require statements for access control." @@ -2156,10 +2085,20 @@ "withdrawPrize(address)": { "details": "Winners must implement IPayable to receive funds." } - } + }, + "version": 1 }, "userdoc": { + "events": { + "Deposit(address,uint256,uint256)": { + "notice": "Event emitted when the contract receives a deposit." + } + }, + "kind": "user", "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + }, "allocatePrize(uint256,uint256,uint256)": { "notice": "Allows the organizer to allocate funds that's going to be distributed to winners." }, @@ -2226,6 +2165,7 @@ "withdrawPrize(address)": { "notice": "Allows withdrawing prizes to winners." } - } + }, + "version": 1 } } diff --git a/build/contracts/IPayable.json b/build/contracts/IPayable.json index ea2ed61..1234b07 100644 --- a/build/contracts/IPayable.json +++ b/build/contracts/IPayable.json @@ -2,156 +2,185 @@ "contractName": "IPayable", "abi": [ { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"}},\"notice\":\"Defines the structure that a payable contract must implement to receive funds.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":\"IPayable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"}},\"notice\":\"Defines the structure that a payable contract must implement to receive funds.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":\"IPayable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n/// @notice Defines the structure that a payable contract must implement to receive funds.\ninterface IPayable {\n /// @notice Allows the contract to receive funds.\n function deposit() external payable;\n}\n", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\n/// @notice Defines the structure that a payable contract must implement to receive funds.\ninterface IPayable {\n /// @notice Allows the contract to receive funds.\n function deposit() external payable;\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol", "exportedSymbols": { - "IPayable": [2869] + "IPayable": [2987] }, - "id": 2870, + "id": 2988, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2865, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2981, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "40:31:17" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "interface", - "documentation": "@notice Defines the structure that a payable contract must implement to receive funds.", + "documentation": { + "id": 2982, + "nodeType": "StructuredDocumentation", + "src": "73:91:17", + "text": "@notice Defines the structure that a payable contract must implement to receive funds." + }, "fullyImplemented": false, - "id": 2869, - "linearizedBaseContracts": [2869], + "id": 2987, + "linearizedBaseContracts": [2987], "name": "IPayable", "nodeType": "ContractDefinition", "nodes": [ { - "body": null, - "documentation": "@notice Allows the contract to receive funds.", - "id": 2868, + "documentation": { + "id": 2983, + "nodeType": "StructuredDocumentation", + "src": "189:49:17", + "text": "@notice Allows the contract to receive funds." + }, + "functionSelector": "d0e30db0", + "id": 2986, "implemented": false, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2866, + "id": 2984, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:17" + "src": "259:2:17" }, "returnParameters": { - "id": 2867, + "id": 2985, "nodeType": "ParameterList", "parameters": [], - "src": "230:0:17" + "src": "278:0:17" }, - "scope": 2869, - "src": "195:36:17", + "scope": 2987, + "src": "243:36:17", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2870, - "src": "116:117:17" + "scope": 2988, + "src": "164:117:17" } ], - "src": "0:234:17" + "src": "40:242:17" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol", "exportedSymbols": { - "IPayable": [2869] + "IPayable": [2987] }, - "id": 2870, + "id": 2988, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2865, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2981, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:17" + "src": "40:31:17" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "interface", - "documentation": "@notice Defines the structure that a payable contract must implement to receive funds.", + "documentation": { + "id": 2982, + "nodeType": "StructuredDocumentation", + "src": "73:91:17", + "text": "@notice Defines the structure that a payable contract must implement to receive funds." + }, "fullyImplemented": false, - "id": 2869, - "linearizedBaseContracts": [2869], + "id": 2987, + "linearizedBaseContracts": [2987], "name": "IPayable", "nodeType": "ContractDefinition", "nodes": [ { - "body": null, - "documentation": "@notice Allows the contract to receive funds.", - "id": 2868, + "documentation": { + "id": 2983, + "nodeType": "StructuredDocumentation", + "src": "189:49:17", + "text": "@notice Allows the contract to receive funds." + }, + "functionSelector": "d0e30db0", + "id": 2986, "implemented": false, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2866, + "id": 2984, "nodeType": "ParameterList", "parameters": [], - "src": "211:2:17" + "src": "259:2:17" }, "returnParameters": { - "id": 2867, + "id": 2985, "nodeType": "ParameterList", "parameters": [], - "src": "230:0:17" + "src": "278:0:17" }, - "scope": 2869, - "src": "195:36:17", + "scope": 2987, + "src": "243:36:17", "stateMutability": "payable", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2870, - "src": "116:117:17" + "scope": 2988, + "src": "164:117:17" } ], - "src": "0:234:17" + "src": "40:242:17" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.518Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.116Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "deposit()": { "notice": "Allows the contract to receive funds." } }, - "notice": "Defines the structure that a payable contract must implement to receive funds." + "notice": "Defines the structure that a payable contract must implement to receive funds.", + "version": 1 } } diff --git a/build/contracts/JudgeRole.json b/build/contracts/JudgeRole.json index 968e26c..48bcd56 100644 --- a/build/contracts/JudgeRole.json +++ b/build/contracts/JudgeRole.json @@ -1,12 +1,6 @@ { "contractName": "JudgeRole", "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -34,7 +28,6 @@ "type": "event" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -50,12 +43,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -65,110 +56,116 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"methods\":{}},\"userdoc\":{\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"}},\"notice\":\"Implements a access control for a Judge role, which will be responsible for evaluating teams' proposals.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":\"JudgeRole\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"}},\"notice\":\"Implements a access control for a Judge role, which will be responsible for evaluating teams' proposals.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":\"JudgeRole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\npragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\n/**\n @notice Implements a access control for a Judge role,\n which will be responsible for evaluating teams' proposals.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\ncontract JudgeRole {\n using Roles for Roles.Role;\n\n event JudgeAdded(address indexed account);\n event JudgeRemoved(address indexed account);\n\n Roles.Role private _judges;\n\n constructor() internal {\n // Needs to be inherited.\n }\n\n modifier onlyJudge() {\n require(isJudge(msg.sender), \"JudgeRole: caller does not have Judge Role.\");\n _;\n }\n\n function isJudge(address account) public view returns (bool) {\n return _judges.has(account);\n }\n\n /// @notice\n /// @dev Needs to be implemented by a inherited contract.\n function addJudge(address account) public;\n\n function renounceJudge() public {\n _removeJudge(msg.sender);\n }\n\n function _addJudge(address account) internal {\n _judges.add(account);\n emit JudgeAdded(account);\n }\n\n function _removeJudge(address account) internal {\n _judges.remove(account);\n emit JudgeRemoved(account);\n }\n}\n", + "source": "// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\n// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"./Roles.sol\";\n\n/**\n @notice Implements a access control for a Judge role,\n which will be responsible for evaluating teams' proposals.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\nabstract contract JudgeRole {\n using Roles for Roles.Role;\n\n event JudgeAdded(address indexed account);\n event JudgeRemoved(address indexed account);\n\n Roles.Role private _judges;\n\n modifier onlyJudge() {\n require(isJudge(msg.sender), \"JudgeRole: caller does not have Judge Role.\");\n _;\n }\n\n function isJudge(address account) public view returns (bool) {\n return _judges.has(account);\n }\n\n /// @notice\n /// @dev Needs to be implemented by a inherited contract.\n function addJudge(address account) virtual public;\n\n function renounceJudge() public {\n _removeJudge(msg.sender);\n }\n\n function _addJudge(address account) internal virtual {\n _judges.add(account);\n emit JudgeAdded(account);\n }\n\n function _removeJudge(address account) internal virtual {\n _judges.remove(account);\n emit JudgeRemoved(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "exportedSymbols": { - "JudgeRole": [3287] + "JudgeRole": [3416], + "Roles": [3618] }, - "id": 3288, + "id": 3417, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3197, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3328, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:21" + "src": "173:31:21" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 3198, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3329, "nodeType": "ImportDirective", - "scope": 3288, - "sourceUnit": 4083, - "src": "1310:58:21", + "scope": 3417, + "sourceUnit": 3619, + "src": "206:21:21", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for a Judge role,\nwhich will be responsible for evaluating teams' proposals.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3330, + "nodeType": "StructuredDocumentation", + "src": "229:244:21", + "text": "@notice Implements a access control for a Judge role,\nwhich will be responsible for evaluating teams' proposals.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": false, - "id": 3287, - "linearizedBaseContracts": [3287], + "id": 3416, + "linearizedBaseContracts": [3416], "name": "JudgeRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3201, + "id": 3333, "libraryName": { - "contractScope": null, - "id": 3199, + "id": 3331, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1646:5:21", + "referencedDeclaration": 3618, + "src": "514:5:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1640:27:21", + "src": "508:27:21", "typeName": { - "contractScope": null, - "id": 3200, + "id": 3332, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1656:10:21", + "referencedDeclaration": 3540, + "src": "524:10:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 3205, + "id": 3337, "name": "JudgeAdded", "nodeType": "EventDefinition", "parameters": { - "id": 3204, + "id": 3336, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3203, + "id": 3335, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3205, - "src": "1690:23:21", + "scope": 3337, + "src": "558:23:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -176,42 +173,41 @@ "typeString": "address" }, "typeName": { - "id": 3202, + "id": 3334, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1690:7:21", + "src": "558:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1689:25:21" + "src": "557:25:21" }, - "src": "1673:42:21" + "src": "541:42:21" }, { "anonymous": false, - "documentation": null, - "id": 3209, + "id": 3341, "name": "JudgeRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 3208, + "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3207, + "id": 3339, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3209, - "src": "1739:23:21", + "scope": 3341, + "src": "607:23:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -219,121 +215,82 @@ "typeString": "address" }, "typeName": { - "id": 3206, + "id": 3338, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1739:7:21", + "src": "607:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1738:25:21" + "src": "606:25:21" }, - "src": "1720:44:21" + "src": "588:44:21" }, { "constant": false, - "id": 3211, + "id": 3343, + "mutability": "mutable", "name": "_judges", "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1770:26:21", + "scope": 3416, + "src": "638:26:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 3210, + "id": 3342, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1770:10:21", + "referencedDeclaration": 3540, + "src": "638:10:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 3214, - "nodeType": "Block", - "src": "1826:41:21", - "statements": [] - }, - "documentation": null, - "id": 3215, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3212, - "nodeType": "ParameterList", - "parameters": [], - "src": "1814:2:21" - }, - "returnParameters": { - "id": 3213, - "nodeType": "ParameterList", - "parameters": [], - "src": "1826:0:21" - }, - "scope": 3287, - "src": "1803:64:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3226, + "id": 3354, "nodeType": "Block", - "src": "1894:103:21", + "src": "692:103:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3219, + "id": 3347, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1920:3:21", + "referencedDeclaration": 4294967281, + "src": "718:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3220, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1920:10:21", + "src": "718:10:21", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -347,18 +304,18 @@ "typeString": "address payable" } ], - "id": 3218, + "id": 3346, "name": "isJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3240, - "src": "1912:7:21", + "referencedDeclaration": 3368, + "src": "710:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3221, + "id": 3349, "isConstant": false, "isLValue": false, "isPure": false, @@ -366,24 +323,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1912:19:21", + "src": "710:19:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e", - "id": 3222, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1933:45:21", - "subdenomination": null, + "src": "731:45:21", "typeDescriptions": { "typeIdentifier": "t_stringliteral_47170fda04914e7b46bc40b61da495e2fc636a81dc1f95250a3124560d7f563a", "typeString": "literal_string \"JudgeRole: caller does not have Judge Role.\"" @@ -402,18 +358,18 @@ "typeString": "literal_string \"JudgeRole: caller does not have Judge Role.\"" } ], - "id": 3217, + "id": 3345, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1904:7:21", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "702:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3223, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": false, @@ -421,54 +377,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1904:75:21", + "src": "702:75:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3224, + "id": 3352, "nodeType": "ExpressionStatement", - "src": "1904:75:21" + "src": "702:75:21" }, { - "id": 3225, + "id": 3353, "nodeType": "PlaceholderStatement", - "src": "1989:1:21" + "src": "787:1:21" } ] }, - "documentation": null, - "id": 3227, + "id": 3355, "name": "onlyJudge", "nodeType": "ModifierDefinition", "parameters": { - "id": 3216, + "id": 3344, "nodeType": "ParameterList", "parameters": [], - "src": "1891:2:21" + "src": "689:2:21" }, - "src": "1873:124:21", + "src": "671:124:21", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3239, + "id": 3367, "nodeType": "Block", - "src": "2064:44:21", + "src": "862:44:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3236, + "id": 3364, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3229, - "src": "2093:7:21", + "referencedDeclaration": 3357, + "src": "891:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -483,33 +438,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3234, + "id": 3362, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2081:7:21", + "referencedDeclaration": 3343, + "src": "879:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3235, + "id": 3363, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2081:11:21", + "referencedDeclaration": 3617, + "src": "879:11:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 3237, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, @@ -517,37 +471,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2081:20:21", + "src": "879:20:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3233, - "id": 3238, + "functionReturnParameters": 3361, + "id": 3366, "nodeType": "Return", - "src": "2074:27:21" + "src": "872:27:21" } ] }, - "documentation": null, - "id": 3240, + "functionSelector": "ed896d66", + "id": 3368, "implemented": true, "kind": "function", "modifiers": [], "name": "isJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3230, + "id": 3358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3229, + "id": 3357, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3240, - "src": "2020:15:21", + "scope": 3368, + "src": "818:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -555,33 +511,33 @@ "typeString": "address" }, "typeName": { - "id": 3228, + "id": 3356, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2020:7:21", + "src": "818:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2019:17:21" + "src": "817:17:21" }, "returnParameters": { - "id": 3233, + "id": 3361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3232, + "id": 3360, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 3240, - "src": "2058:4:21", + "scope": 3368, + "src": "856:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -589,47 +545,52 @@ "typeString": "bool" }, "typeName": { - "id": 3231, + "id": 3359, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2058:4:21", + "src": "856:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2057:6:21" + "src": "855:6:21" }, - "scope": 3287, - "src": "2003:105:21", + "scope": 3416, + "src": "801:105:21", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { - "body": null, - "documentation": "@notice\n @dev Needs to be implemented by a inherited contract.", - "id": 3245, + "documentation": { + "id": 3369, + "nodeType": "StructuredDocumentation", + "src": "912:73:21", + "text": "@notice\n @dev Needs to be implemented by a inherited contract." + }, + "functionSelector": "927cab47", + "id": 3374, "implemented": false, "kind": "function", "modifiers": [], "name": "addJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3243, + "id": 3372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3242, + "id": 3371, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3245, - "src": "2210:15:21", + "scope": 3374, + "src": "1008:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -637,68 +598,63 @@ "typeString": "address" }, "typeName": { - "id": 3241, + "id": 3370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2210:7:21", + "src": "1008:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2209:17:21" + "src": "1007:17:21" }, "returnParameters": { - "id": 3244, + "id": 3373, "nodeType": "ParameterList", "parameters": [], - "src": "2233:0:21" + "src": "1039:0:21" }, - "scope": 3287, - "src": "2192:42:21", + "scope": 3416, + "src": "990:50:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 3253, + "id": 3382, "nodeType": "Block", - "src": "2272:41:21", + "src": "1078:41:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3249, + "id": 3378, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2295:3:21", + "referencedDeclaration": 4294967281, + "src": "1101:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3250, + "id": 3379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2295:10:21", + "src": "1101:10:21", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -712,18 +668,18 @@ "typeString": "address payable" } ], - "id": 3248, + "id": 3377, "name": "_removeJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3286, - "src": "2282:12:21", + "referencedDeclaration": 3415, + "src": "1088:12:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3251, + "id": 3380, "isConstant": false, "isLValue": false, "isPure": false, @@ -731,61 +687,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2282:24:21", + "src": "1088:24:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3252, + "id": 3381, "nodeType": "ExpressionStatement", - "src": "2282:24:21" + "src": "1088:24:21" } ] }, - "documentation": null, - "id": 3254, + "functionSelector": "4b30b66f", + "id": 3383, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3246, + "id": 3375, "nodeType": "ParameterList", "parameters": [], - "src": "2262:2:21" + "src": "1068:2:21" }, "returnParameters": { - "id": 3247, + "id": 3376, "nodeType": "ParameterList", "parameters": [], - "src": "2272:0:21" + "src": "1078:0:21" }, - "scope": 3287, - "src": "2240:73:21", + "scope": 3416, + "src": "1046:73:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3269, + "id": 3398, "nodeType": "Block", - "src": "2364:71:21", + "src": "1178:71:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3262, + "id": 3391, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, - "src": "2386:7:21", + "referencedDeclaration": 3385, + "src": "1200:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -800,33 +755,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3259, + "id": 3388, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2374:7:21", + "referencedDeclaration": 3343, + "src": "1188:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3261, + "id": 3390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2374:11:21", + "referencedDeclaration": 3566, + "src": "1188:11:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3263, + "id": 3392, "isConstant": false, "isLValue": false, "isPure": false, @@ -834,28 +788,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:20:21", + "src": "1188:20:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3264, + "id": 3393, "nodeType": "ExpressionStatement", - "src": "2374:20:21" + "src": "1188:20:21" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3266, + "id": 3395, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, - "src": "2420:7:21", + "referencedDeclaration": 3385, + "src": "1234:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -869,18 +822,18 @@ "typeString": "address" } ], - "id": 3265, + "id": 3394, "name": "JudgeAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "2409:10:21", + "referencedDeclaration": 3337, + "src": "1223:10:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3267, + "id": 3396, "isConstant": false, "isLValue": false, "isPure": false, @@ -888,36 +841,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2409:19:21", + "src": "1223:19:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3268, + "id": 3397, "nodeType": "EmitStatement", - "src": "2404:24:21" + "src": "1218:24:21" } ] }, - "documentation": null, - "id": 3270, + "id": 3399, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3257, + "id": 3386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3256, + "id": 3385, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "2338:15:21", + "scope": 3399, + "src": "1144:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -925,52 +879,49 @@ "typeString": "address" }, "typeName": { - "id": 3255, + "id": 3384, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2338:7:21", + "src": "1144:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2337:17:21" + "src": "1143:17:21" }, "returnParameters": { - "id": 3258, + "id": 3387, "nodeType": "ParameterList", "parameters": [], - "src": "2364:0:21" + "src": "1178:0:21" }, - "scope": 3287, - "src": "2319:116:21", + "scope": 3416, + "src": "1125:124:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3285, + "id": 3414, "nodeType": "Block", - "src": "2489:76:21", + "src": "1311:76:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3278, + "id": 3407, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "2514:7:21", + "referencedDeclaration": 3401, + "src": "1336:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -985,33 +936,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3275, + "id": 3404, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2499:7:21", + "referencedDeclaration": 3343, + "src": "1321:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3277, + "id": 3406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2499:14:21", + "referencedDeclaration": 3591, + "src": "1321:14:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3279, + "id": 3408, "isConstant": false, "isLValue": false, "isPure": false, @@ -1019,28 +969,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2499:23:21", + "src": "1321:23:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3280, + "id": 3409, "nodeType": "ExpressionStatement", - "src": "2499:23:21" + "src": "1321:23:21" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3282, + "id": 3411, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "2550:7:21", + "referencedDeclaration": 3401, + "src": "1372:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1054,18 +1003,18 @@ "typeString": "address" } ], - "id": 3281, + "id": 3410, "name": "JudgeRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "2537:12:21", + "referencedDeclaration": 3341, + "src": "1359:12:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3283, + "id": 3412, "isConstant": false, "isLValue": false, "isPure": false, @@ -1073,36 +1022,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2537:21:21", + "src": "1359:21:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3284, + "id": 3413, "nodeType": "EmitStatement", - "src": "2532:26:21" + "src": "1354:26:21" } ] }, - "documentation": null, - "id": 3286, + "id": 3415, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3273, + "id": 3402, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3272, + "id": 3401, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3286, - "src": "2463:15:21", + "scope": 3415, + "src": "1277:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1110,124 +1060,129 @@ "typeString": "address" }, "typeName": { - "id": 3271, + "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2463:7:21", + "src": "1277:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2462:17:21" + "src": "1276:17:21" }, "returnParameters": { - "id": 3274, + "id": 3403, "nodeType": "ParameterList", "parameters": [], - "src": "2489:0:21" + "src": "1311:0:21" }, - "scope": 3287, - "src": "2441:124:21", + "scope": 3416, + "src": "1255:132:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3288, - "src": "1615:952:21" + "scope": 3417, + "src": "474:915:21" } ], - "src": "1285:1283:21" + "src": "173:1217:21" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "exportedSymbols": { - "JudgeRole": [3287] + "JudgeRole": [3416], + "Roles": [3618] }, - "id": 3288, + "id": 3417, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3197, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3328, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:21" + "src": "173:31:21" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 3198, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3329, "nodeType": "ImportDirective", - "scope": 3288, - "sourceUnit": 4083, - "src": "1310:58:21", + "scope": 3417, + "sourceUnit": 3619, + "src": "206:21:21", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for a Judge role,\nwhich will be responsible for evaluating teams' proposals.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3330, + "nodeType": "StructuredDocumentation", + "src": "229:244:21", + "text": "@notice Implements a access control for a Judge role,\nwhich will be responsible for evaluating teams' proposals.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": false, - "id": 3287, - "linearizedBaseContracts": [3287], + "id": 3416, + "linearizedBaseContracts": [3416], "name": "JudgeRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3201, + "id": 3333, "libraryName": { - "contractScope": null, - "id": 3199, + "id": 3331, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1646:5:21", + "referencedDeclaration": 3618, + "src": "514:5:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1640:27:21", + "src": "508:27:21", "typeName": { - "contractScope": null, - "id": 3200, + "id": 3332, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1656:10:21", + "referencedDeclaration": 3540, + "src": "524:10:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 3205, + "id": 3337, "name": "JudgeAdded", "nodeType": "EventDefinition", "parameters": { - "id": 3204, + "id": 3336, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3203, + "id": 3335, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3205, - "src": "1690:23:21", + "scope": 3337, + "src": "558:23:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1235,42 +1190,41 @@ "typeString": "address" }, "typeName": { - "id": 3202, + "id": 3334, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1690:7:21", + "src": "558:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1689:25:21" + "src": "557:25:21" }, - "src": "1673:42:21" + "src": "541:42:21" }, { "anonymous": false, - "documentation": null, - "id": 3209, + "id": 3341, "name": "JudgeRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 3208, + "id": 3340, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3207, + "id": 3339, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3209, - "src": "1739:23:21", + "scope": 3341, + "src": "607:23:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1278,121 +1232,82 @@ "typeString": "address" }, "typeName": { - "id": 3206, + "id": 3338, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1739:7:21", + "src": "607:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1738:25:21" + "src": "606:25:21" }, - "src": "1720:44:21" + "src": "588:44:21" }, { "constant": false, - "id": 3211, + "id": 3343, + "mutability": "mutable", "name": "_judges", "nodeType": "VariableDeclaration", - "scope": 3287, - "src": "1770:26:21", + "scope": 3416, + "src": "638:26:21", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 3210, + "id": 3342, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1770:10:21", + "referencedDeclaration": 3540, + "src": "638:10:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 3214, + "id": 3354, "nodeType": "Block", - "src": "1826:41:21", - "statements": [] - }, - "documentation": null, - "id": 3215, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3212, - "nodeType": "ParameterList", - "parameters": [], - "src": "1814:2:21" - }, - "returnParameters": { - "id": 3213, - "nodeType": "ParameterList", - "parameters": [], - "src": "1826:0:21" - }, - "scope": 3287, - "src": "1803:64:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3226, - "nodeType": "Block", - "src": "1894:103:21", + "src": "692:103:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3219, + "id": 3347, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1920:3:21", + "referencedDeclaration": 4294967281, + "src": "718:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3220, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1920:10:21", + "src": "718:10:21", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1406,18 +1321,18 @@ "typeString": "address payable" } ], - "id": 3218, + "id": 3346, "name": "isJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3240, - "src": "1912:7:21", + "referencedDeclaration": 3368, + "src": "710:7:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3221, + "id": 3349, "isConstant": false, "isLValue": false, "isPure": false, @@ -1425,24 +1340,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1912:19:21", + "src": "710:19:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e", - "id": 3222, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1933:45:21", - "subdenomination": null, + "src": "731:45:21", "typeDescriptions": { "typeIdentifier": "t_stringliteral_47170fda04914e7b46bc40b61da495e2fc636a81dc1f95250a3124560d7f563a", "typeString": "literal_string \"JudgeRole: caller does not have Judge Role.\"" @@ -1461,18 +1375,18 @@ "typeString": "literal_string \"JudgeRole: caller does not have Judge Role.\"" } ], - "id": 3217, + "id": 3345, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1904:7:21", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "702:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3223, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": false, @@ -1480,54 +1394,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1904:75:21", + "src": "702:75:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3224, + "id": 3352, "nodeType": "ExpressionStatement", - "src": "1904:75:21" + "src": "702:75:21" }, { - "id": 3225, + "id": 3353, "nodeType": "PlaceholderStatement", - "src": "1989:1:21" + "src": "787:1:21" } ] }, - "documentation": null, - "id": 3227, + "id": 3355, "name": "onlyJudge", "nodeType": "ModifierDefinition", "parameters": { - "id": 3216, + "id": 3344, "nodeType": "ParameterList", "parameters": [], - "src": "1891:2:21" + "src": "689:2:21" }, - "src": "1873:124:21", + "src": "671:124:21", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3239, + "id": 3367, "nodeType": "Block", - "src": "2064:44:21", + "src": "862:44:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3236, + "id": 3364, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3229, - "src": "2093:7:21", + "referencedDeclaration": 3357, + "src": "891:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1542,33 +1455,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3234, + "id": 3362, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2081:7:21", + "referencedDeclaration": 3343, + "src": "879:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3235, + "id": 3363, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2081:11:21", + "referencedDeclaration": 3617, + "src": "879:11:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 3237, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, @@ -1576,37 +1488,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2081:20:21", + "src": "879:20:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3233, - "id": 3238, + "functionReturnParameters": 3361, + "id": 3366, "nodeType": "Return", - "src": "2074:27:21" + "src": "872:27:21" } ] }, - "documentation": null, - "id": 3240, + "functionSelector": "ed896d66", + "id": 3368, "implemented": true, "kind": "function", "modifiers": [], "name": "isJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3230, + "id": 3358, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3229, + "id": 3357, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3240, - "src": "2020:15:21", + "scope": 3368, + "src": "818:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1614,33 +1528,33 @@ "typeString": "address" }, "typeName": { - "id": 3228, + "id": 3356, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2020:7:21", + "src": "818:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2019:17:21" + "src": "817:17:21" }, "returnParameters": { - "id": 3233, + "id": 3361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3232, + "id": 3360, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 3240, - "src": "2058:4:21", + "scope": 3368, + "src": "856:4:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1648,47 +1562,52 @@ "typeString": "bool" }, "typeName": { - "id": 3231, + "id": 3359, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2058:4:21", + "src": "856:4:21", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2057:6:21" + "src": "855:6:21" }, - "scope": 3287, - "src": "2003:105:21", + "scope": 3416, + "src": "801:105:21", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { - "body": null, - "documentation": "@notice\n @dev Needs to be implemented by a inherited contract.", - "id": 3245, + "documentation": { + "id": 3369, + "nodeType": "StructuredDocumentation", + "src": "912:73:21", + "text": "@notice\n @dev Needs to be implemented by a inherited contract." + }, + "functionSelector": "927cab47", + "id": 3374, "implemented": false, "kind": "function", "modifiers": [], "name": "addJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3243, + "id": 3372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3242, + "id": 3371, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3245, - "src": "2210:15:21", + "scope": 3374, + "src": "1008:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1696,68 +1615,63 @@ "typeString": "address" }, "typeName": { - "id": 3241, + "id": 3370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2210:7:21", + "src": "1008:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2209:17:21" + "src": "1007:17:21" }, "returnParameters": { - "id": 3244, + "id": 3373, "nodeType": "ParameterList", "parameters": [], - "src": "2233:0:21" + "src": "1039:0:21" }, - "scope": 3287, - "src": "2192:42:21", + "scope": 3416, + "src": "990:50:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 3253, + "id": 3382, "nodeType": "Block", - "src": "2272:41:21", + "src": "1078:41:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3249, + "id": 3378, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2295:3:21", + "referencedDeclaration": 4294967281, + "src": "1101:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3250, + "id": 3379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2295:10:21", + "src": "1101:10:21", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1771,18 +1685,18 @@ "typeString": "address payable" } ], - "id": 3248, + "id": 3377, "name": "_removeJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3286, - "src": "2282:12:21", + "referencedDeclaration": 3415, + "src": "1088:12:21", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3251, + "id": 3380, "isConstant": false, "isLValue": false, "isPure": false, @@ -1790,61 +1704,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2282:24:21", + "src": "1088:24:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3252, + "id": 3381, "nodeType": "ExpressionStatement", - "src": "2282:24:21" + "src": "1088:24:21" } ] }, - "documentation": null, - "id": 3254, + "functionSelector": "4b30b66f", + "id": 3383, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3246, + "id": 3375, "nodeType": "ParameterList", "parameters": [], - "src": "2262:2:21" + "src": "1068:2:21" }, "returnParameters": { - "id": 3247, + "id": 3376, "nodeType": "ParameterList", "parameters": [], - "src": "2272:0:21" + "src": "1078:0:21" }, - "scope": 3287, - "src": "2240:73:21", + "scope": 3416, + "src": "1046:73:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3269, + "id": 3398, "nodeType": "Block", - "src": "2364:71:21", + "src": "1178:71:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3262, + "id": 3391, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, - "src": "2386:7:21", + "referencedDeclaration": 3385, + "src": "1200:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1859,33 +1772,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3259, + "id": 3388, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2374:7:21", + "referencedDeclaration": 3343, + "src": "1188:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3261, + "id": 3390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2374:11:21", + "referencedDeclaration": 3566, + "src": "1188:11:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3263, + "id": 3392, "isConstant": false, "isLValue": false, "isPure": false, @@ -1893,28 +1805,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2374:20:21", + "src": "1188:20:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3264, + "id": 3393, "nodeType": "ExpressionStatement", - "src": "2374:20:21" + "src": "1188:20:21" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3266, + "id": 3395, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3256, - "src": "2420:7:21", + "referencedDeclaration": 3385, + "src": "1234:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1928,18 +1839,18 @@ "typeString": "address" } ], - "id": 3265, + "id": 3394, "name": "JudgeAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "2409:10:21", + "referencedDeclaration": 3337, + "src": "1223:10:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3267, + "id": 3396, "isConstant": false, "isLValue": false, "isPure": false, @@ -1947,36 +1858,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2409:19:21", + "src": "1223:19:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3268, + "id": 3397, "nodeType": "EmitStatement", - "src": "2404:24:21" + "src": "1218:24:21" } ] }, - "documentation": null, - "id": 3270, + "id": 3399, "implemented": true, "kind": "function", "modifiers": [], "name": "_addJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3257, + "id": 3386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3256, + "id": 3385, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "2338:15:21", + "scope": 3399, + "src": "1144:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1984,52 +1896,49 @@ "typeString": "address" }, "typeName": { - "id": 3255, + "id": 3384, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2338:7:21", + "src": "1144:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2337:17:21" + "src": "1143:17:21" }, "returnParameters": { - "id": 3258, + "id": 3387, "nodeType": "ParameterList", "parameters": [], - "src": "2364:0:21" + "src": "1178:0:21" }, - "scope": 3287, - "src": "2319:116:21", + "scope": 3416, + "src": "1125:124:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3285, + "id": 3414, "nodeType": "Block", - "src": "2489:76:21", + "src": "1311:76:21", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3278, + "id": 3407, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "2514:7:21", + "referencedDeclaration": 3401, + "src": "1336:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2044,33 +1953,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3275, + "id": 3404, "name": "_judges", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "2499:7:21", + "referencedDeclaration": 3343, + "src": "1321:7:21", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3277, + "id": 3406, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2499:14:21", + "referencedDeclaration": 3591, + "src": "1321:14:21", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3279, + "id": 3408, "isConstant": false, "isLValue": false, "isPure": false, @@ -2078,28 +1986,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2499:23:21", + "src": "1321:23:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3280, + "id": 3409, "nodeType": "ExpressionStatement", - "src": "2499:23:21" + "src": "1321:23:21" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3282, + "id": 3411, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3272, - "src": "2550:7:21", + "referencedDeclaration": 3401, + "src": "1372:7:21", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2113,18 +2020,18 @@ "typeString": "address" } ], - "id": 3281, + "id": 3410, "name": "JudgeRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3209, - "src": "2537:12:21", + "referencedDeclaration": 3341, + "src": "1359:12:21", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3283, + "id": 3412, "isConstant": false, "isLValue": false, "isPure": false, @@ -2132,36 +2039,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2537:21:21", + "src": "1359:21:21", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3284, + "id": 3413, "nodeType": "EmitStatement", - "src": "2532:26:21" + "src": "1354:26:21" } ] }, - "documentation": null, - "id": 3286, + "id": 3415, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 3273, + "id": 3402, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3272, + "id": 3401, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3286, - "src": "2463:15:21", + "scope": 3415, + "src": "1277:15:21", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2169,58 +2077,61 @@ "typeString": "address" }, "typeName": { - "id": 3271, + "id": 3400, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2463:7:21", + "src": "1277:7:21", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2462:17:21" + "src": "1276:17:21" }, "returnParameters": { - "id": 3274, + "id": 3403, "nodeType": "ParameterList", "parameters": [], - "src": "2489:0:21" + "src": "1311:0:21" }, - "scope": 3287, - "src": "2441:124:21", + "scope": 3416, + "src": "1255:132:21", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3288, - "src": "1615:952:21" + "scope": 3417, + "src": "474:915:21" } ], - "src": "1285:1283:21" + "src": "173:1217:21" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.530Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.133Z", "devdoc": { "details": "not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "addJudge(address)": { "notice": "@dev Needs to be implemented by a inherited contract." } }, - "notice": "Implements a access control for a Judge role, which will be responsible for evaluating teams' proposals." + "notice": "Implements a access control for a Judge role, which will be responsible for evaluating teams' proposals.", + "version": 1 } } diff --git a/build/contracts/JudgeRoleMock.json b/build/contracts/JudgeRoleMock.json index 1754d01..1b71dec 100644 --- a/build/contracts/JudgeRoleMock.json +++ b/build/contracts/JudgeRoleMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -34,7 +33,6 @@ "type": "event" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -50,21 +48,17 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -74,12 +68,10 @@ ], "name": "addJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -89,116 +81,113 @@ ], "name": "removeJudge", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "onlyJudgeMock", "outputs": [], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"onlyJudgeMock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol\":\"JudgeRoleMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol\":{\"keccak256\":\"0xf14da4665908592ea1af163358eed8fdfc483156afa2bfba941e71dd8c19afb4\",\"urls\":[\"bzz-raw://e4c671866c91e0034da0a20375d69ff1f287567a15a27f8bbe98b70bd1ded484\",\"dweb:/ipfs/QmWxjW7PJkMG4Z9ertvTWajGLm2hnh2t3PTsko4AkhGf8o\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x9adf6a6514d21fdc98880aad0d9547432138a169c31419d2ce29017352f813ec\",\"urls\":[\"bzz-raw://d6c2aa2f869554f26c3e5b5884751dfba469b5fdd56491d5c8598efb332235ca\",\"dweb:/ipfs/QmR28U5mG6PwiC4msHtaEZrm6uRBvgfVU2qt8GQgQBLYvU\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506100243361002960201b6101bd1760201c565b61019d565b61004181600061007860201b6102b41790919060201c565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b61008b82826001600160e01b0361011c16565b156100f757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821661017d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806105eb6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61043f806101ac6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80634b30b66f1461005c578063927cab4714610066578063ae2ac4ae1461008c578063c13c90fd146100b2578063ed896d66146100ba575b600080fd5b6100646100f4565b005b6100646004803603602081101561007c57600080fd5b50356001600160a01b03166100ff565b610064600480360360208110156100a257600080fd5b50356001600160a01b031661014f565b610064610158565b6100e0600480360360208110156100d057600080fd5b50356001600160a01b031661019c565b604080519115158252519081900360200190f35b6100fd336101b4565b565b6101083361019c565b6101435760405162461bcd60e51b815260040180806020018281038252602b81526020018061039d602b913960400191505060405180910390fd5b61014c816101bd565b50565b61014c816101b4565b6101613361019c565b6100fd5760405162461bcd60e51b815260040180806020018281038252602b81526020018061039d602b913960400191505060405180910390fd5b60006101ae818363ffffffff61020516565b92915050565b61014c8161026c565b6101ce60008263ffffffff6102b416565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b60006001600160a01b03821661024c5760405162461bcd60e51b81526004018080602001828103825260228152602001806103e96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61027d60008263ffffffff61033516565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b6102be8282610205565b15610310576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61033f8282610205565b61037a5760405162461bcd60e51b81526004018080602001828103825260218152602001806103c86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820f59f58be1a799e1fa1a0a80be01acb73b215d63b968cae324c1e7dd3796a8a3c64736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80634b30b66f1461005c578063927cab4714610066578063ae2ac4ae1461008c578063c13c90fd146100b2578063ed896d66146100ba575b600080fd5b6100646100f4565b005b6100646004803603602081101561007c57600080fd5b50356001600160a01b03166100ff565b610064600480360360208110156100a257600080fd5b50356001600160a01b031661014f565b610064610158565b6100e0600480360360208110156100d057600080fd5b50356001600160a01b031661019c565b604080519115158252519081900360200190f35b6100fd336101b4565b565b6101083361019c565b6101435760405162461bcd60e51b815260040180806020018281038252602b81526020018061039d602b913960400191505060405180910390fd5b61014c816101bd565b50565b61014c816101b4565b6101613361019c565b6100fd5760405162461bcd60e51b815260040180806020018281038252602b81526020018061039d602b913960400191505060405180910390fd5b60006101ae818363ffffffff61020516565b92915050565b61014c8161026c565b6101ce60008263ffffffff6102b416565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b60006001600160a01b03821661024c5760405162461bcd60e51b81526004018080602001828103825260228152602001806103e96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61027d60008263ffffffff61033516565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b6102be8282610205565b15610310576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61033f8282610205565b61037a5760405162461bcd60e51b81526004018080602001828103825260218152602001806103c86021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a72315820f59f58be1a799e1fa1a0a80be01acb73b215d63b968cae324c1e7dd3796a8a3c64736f6c634300050c0032", - "sourceMap": "1341:596:14:-;;;1383:77;8:9:-1;5:2;;;30:1;27;20:12;5:2;1383:77:14;1426:27;1442:10;1426:15;;;;;:27;;:::i;:::-;1341:596;;2319:116:21;2374:20;2386:7;2374;:11;;;;;;:20;;;;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1341:596:14:-;;;;;;;", - "deployedSourceMap": "1341:596:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1341:596:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:73:21;;;:::i;:::-;;1466:93:14;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1466:93:14;-1:-1:-1;;;;;1466:93:14;;:::i;1565:83::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1565:83:14;-1:-1:-1;;;;;1565:83:14;;:::i;1654:111::-;;;:::i;2003:105:21:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2003:105:21;-1:-1:-1;;;;;2003:105:21;;:::i;:::-;;;;;;;;;;;;;;;;;;2240:73;2282:24;2295:10;2282:12;:24::i;:::-;2240:73::o;1466:93:14:-;1912:19:21;1920:10;1912:7;:19::i;:::-;1904:75;;;;-1:-1:-1;;;1904:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:24:14;1544:7;1528:15;:24::i;:::-;1466:93;:::o;1565:83::-;1620:21;1633:7;1620:12;:21::i;1654:111::-;1912:19:21;1920:10;1912:7;:19::i;:::-;1904:75;;;;-1:-1:-1;;;1904:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2003:105;2058:4;2081:20;2058:4;2093:7;2081:20;:11;:20;:::i;:::-;2074:27;2003:105;-1:-1:-1;;2003:105:21:o;1843:92:14:-;1901:27;1920:7;1901:18;:27::i;2319:116:21:-;2374:20;:7;2386;2374:20;:11;:20;:::i;:::-;2409:19;;-1:-1:-1;;;;;2409:19:21;;;;;;;;2319:116;:::o;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;2441:124:21:-;2499:23;:7;2514;2499:23;:14;:23;:::i;:::-;2537:21;;-1:-1:-1;;;;;2537:21:21;;;;;;;;2441:124;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity ^0.5.0;\n\nimport \"../roles/JudgeRole.sol\";\n\ncontract JudgeRoleMock is JudgeRole {\n constructor() public JudgeRole() {\n super._addJudge(msg.sender);\n }\n\n function addJudge(address account) public onlyJudge {\n super._addJudge(account);\n }\n\n function removeJudge(address account) public {\n _removeJudge(account);\n }\n\n function onlyJudgeMock() public view onlyJudge {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeJudge is not internal\n function _removeJudge(address account) internal {\n super._removeJudge(account);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"JudgeRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isJudge\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyJudgeMock\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceJudge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addJudge(address)\":{\"notice\":\"@dev Needs to be implemented by a inherited contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol\":\"JudgeRoleMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol\":{\"keccak256\":\"0x30443e50f3453cd49f690c5845ba59d1cee7fb0d3e404d51149697977b58ba37\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2b46b4c1454696ab4ea7e0d3f54e7de2f6ea4efe885c90b1075eced4055f43d5\",\"dweb:/ipfs/QmTg2Zz5PKYE3AMwf4AkxU9mhPBP8bpEyWd53EZgqYmCge\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol\":{\"keccak256\":\"0x3c0d61ec0a2f047a4d0576cf326793d622b9e179747305c9a13b941b47f5e8a5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://77d7ba2b0fca24887e527d45be5710f7ae9235140710909fa84e0c036662bb22\",\"dweb:/ipfs/QmYizUtFZR4TAcnCkgeR9AGcoZnfhggxKPm31xTwP3KPTw\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506100243361002960201b6101ae1760201c565b610160565b61004181600061007860201b6101f01790919060201c565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b61008282826100f9565b156100d4576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101405760405162461bcd60e51b815260040180806020018281038252602281526020018061059d6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61042e8061016f6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80634b30b66f1461005c578063927cab4714610066578063ae2ac4ae1461008c578063c13c90fd146100b2578063ed896d66146100ba575b600080fd5b6100646100f4565b005b6100646004803603602081101561007c57600080fd5b50356001600160a01b03166100ff565b610064600480360360208110156100a257600080fd5b50356001600160a01b031661014f565b610064610158565b6100e0600480360360208110156100d057600080fd5b50356001600160a01b031661019c565b604080519115158252519081900360200190f35b6100fd33610271565b565b6101083361019c565b6101435760405162461bcd60e51b815260040180806020018281038252602b81526020018061038b602b913960400191505060405180910390fd5b61014c816101ae565b50565b61014c81610271565b6101613361019c565b6100fd5760405162461bcd60e51b815260040180806020018281038252602b81526020018061038b602b913960400191505060405180910390fd5b60006101a8818361027a565b92915050565b6101b96000826101f0565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6101fa828261027a565b1561024c576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61014c816102e1565b60006001600160a01b0382166102c15760405162461bcd60e51b81526004018080602001828103825260228152602001806103d76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6102ec600082610323565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b61032d828261027a565b6103685760405162461bcd60e51b81526004018080602001828103825260218152602001806103b66021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220839b87795f1602cdf8399ca94b92fecc62d8e750bf9797424fa2570775f053ad64736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80634b30b66f1461005c578063927cab4714610066578063ae2ac4ae1461008c578063c13c90fd146100b2578063ed896d66146100ba575b600080fd5b6100646100f4565b005b6100646004803603602081101561007c57600080fd5b50356001600160a01b03166100ff565b610064600480360360208110156100a257600080fd5b50356001600160a01b031661014f565b610064610158565b6100e0600480360360208110156100d057600080fd5b50356001600160a01b031661019c565b604080519115158252519081900360200190f35b6100fd33610271565b565b6101083361019c565b6101435760405162461bcd60e51b815260040180806020018281038252602b81526020018061038b602b913960400191505060405180910390fd5b61014c816101ae565b50565b61014c81610271565b6101613361019c565b6100fd5760405162461bcd60e51b815260040180806020018281038252602b81526020018061038b602b913960400191505060405180910390fd5b60006101a8818361027a565b92915050565b6101b96000826101f0565b6040516001600160a01b038216907fe7f15f9ffff540ae14fdebcd9b6d6cc1fc143933338656c99caa595e8b80903990600090a250565b6101fa828261027a565b1561024c576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61014c816102e1565b60006001600160a01b0382166102c15760405162461bcd60e51b81526004018080602001828103825260228152602001806103d76022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6102ec600082610323565b6040516001600160a01b038216907f32a792a099c63670df7161917c5efb2fdc734cf9f943ebddccbecef87664f2b790600090a250565b61032d828261027a565b6103685760405162461bcd60e51b81526004018080602001828103825260218152602001806103b66021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4a75646765526f6c653a2063616c6c657220646f6573206e6f742068617665204a7564676520526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a2646970667358221220839b87795f1602cdf8399ca94b92fecc62d8e750bf9797424fa2570775f053ad64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "237:607:14:-:0;;;279:70;;;;;;;;;;315:27:::1;331:10;315:15;;;;;:27;;:::i;:::-;237:607:::0;;1125:124:21;1188:20;1200:7;1188;:11;;;;;;:20;;;;:::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;237:607:14:-;;;;;;;", + "deployedSourceMap": "237:607:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1046:73:21;;;:::i;:::-;;355:102:14;;;;;;;;;;;;;;;;-1:-1:-1;355:102:14;-1:-1:-1;;;;;355:102:14;;:::i;463:83::-;;;;;;;;;;;;;;;;-1:-1:-1;463:83:14;-1:-1:-1;;;;;463:83:14;;:::i;552:111::-;;;:::i;801:105:21:-;;;;;;;;;;;;;;;;-1:-1:-1;801:105:21;-1:-1:-1;;;;;801:105:21;;:::i;:::-;;;;;;;;;;;;;;;;;;1046:73;1088:24;1101:10;1088:12;:24::i;:::-;1046:73::o;355:102:14:-;710:19:21;718:10;710:7;:19::i;:::-;702:75;;;;-1:-1:-1;;;702:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:24:14::1;442:7;426:15;:24::i;:::-;355:102:::0;:::o;463:83::-;518:21;531:7;518:12;:21::i;552:111::-;710:19:21;718:10;710:7;:19::i;:::-;702:75;;;;-1:-1:-1;;;702:75:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;801:105;856:4;879:20;856:4;891:7;879:11;:20::i;:::-;872:27;801:105;-1:-1:-1;;801:105:21:o;1125:124::-;1188:20;:7;1200;1188:11;:20::i;:::-;1223:19;;-1:-1:-1;;;;;1223:19:21;;;;;;;;1125:124;:::o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;741:101:14:-;808:27;827:7;808:18;:27::i;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;1255:132:21:-;1321:23;:7;1336;1321:14;:23::i;:::-;1359:21;;-1:-1:-1;;;;;1359:21:21;;;;;;;;1255:132;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../roles/JudgeRole.sol\";\n\ncontract JudgeRoleMock is JudgeRole {\n constructor() JudgeRole() {\n super._addJudge(msg.sender);\n }\n\n function addJudge(address account) public override onlyJudge {\n super._addJudge(account);\n }\n\n function removeJudge(address account) public {\n _removeJudge(account);\n }\n\n function onlyJudgeMock() public view onlyJudge {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeJudge is not internal\n function _removeJudge(address account) internal override {\n super._removeJudge(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol", "exportedSymbols": { - "JudgeRoleMock": [2768] + "JudgeRole": [3416], + "JudgeRoleMock": [2881], + "Roles": [3618] }, - "id": 2769, + "id": 2882, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2709, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2820, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:14" + "src": "170:31:14" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "file": "../roles/JudgeRole.sol", - "id": 2710, + "id": 2821, "nodeType": "ImportDirective", - "scope": 2769, - "sourceUnit": 3288, - "src": "1307:32:14", + "scope": 2882, + "sourceUnit": 3417, + "src": "203:32:14", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2711, + "id": 2822, "name": "JudgeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3287, - "src": "1367:9:14", + "referencedDeclaration": 3416, + "src": "263:9:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_JudgeRole_$3287", + "typeIdentifier": "t_contract$_JudgeRole_$3416", "typeString": "contract JudgeRole" } }, - "id": 2712, + "id": 2823, "nodeType": "InheritanceSpecifier", - "src": "1367:9:14" + "src": "263:9:14" } ], - "contractDependencies": [3287], + "contractDependencies": [3416], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2768, - "linearizedBaseContracts": [2768, 3287], + "id": 2881, + "linearizedBaseContracts": [2881, 3416], "name": "JudgeRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2724, + "id": 2835, "nodeType": "Block", - "src": "1416:44:14", + "src": "305:44:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2720, + "id": 2831, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1442:3:14", + "referencedDeclaration": 4294967281, + "src": "331:3:14", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2721, + "id": 2832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1442:10:14", + "src": "331:10:14", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -213,33 +202,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2717, + "id": 2828, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1426:5:14", + "referencedDeclaration": 4294967271, + "src": "315:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2719, + "id": 2830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1426:15:14", + "referencedDeclaration": 3399, + "src": "315:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2722, + "id": 2833, "isConstant": false, "isLValue": false, "isPure": false, @@ -247,81 +235,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:27:14", + "src": "315:27:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2723, + "id": 2834, "nodeType": "ExpressionStatement", - "src": "1426:27:14" + "src": "315:27:14" } ] }, - "documentation": null, - "id": 2725, + "id": 2836, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2715, + "id": 2826, "modifierName": { - "argumentTypes": null, - "id": 2714, + "id": 2825, "name": "JudgeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "1404:9:14", + "referencedDeclaration": 3416, + "src": "293:9:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3287_$", + "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3416_$", "typeString": "type(contract JudgeRole)" } }, "nodeType": "ModifierInvocation", - "src": "1404:11:14" + "src": "293:11:14" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2713, + "id": 2824, "nodeType": "ParameterList", "parameters": [], - "src": "1394:2:14" + "src": "290:2:14" }, "returnParameters": { - "id": 2716, + "id": 2827, "nodeType": "ParameterList", "parameters": [], - "src": "1416:0:14" + "src": "305:0:14" }, - "scope": 2768, - "src": "1383:77:14", + "scope": 2881, + "src": "279:70:14", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3374], "body": { - "id": 2738, + "id": 2850, "nodeType": "Block", - "src": "1518:41:14", + "src": "416:41:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2735, + "id": 2847, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "1544:7:14", + "referencedDeclaration": 2838, + "src": "442:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -336,33 +322,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2732, + "id": 2844, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1528:5:14", + "referencedDeclaration": 4294967271, + "src": "426:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2734, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1528:15:14", + "referencedDeclaration": 3399, + "src": "426:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2736, + "id": 2848, "isConstant": false, "isLValue": false, "isPure": false, @@ -370,56 +355,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1528:24:14", + "src": "426:24:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2737, + "id": 2849, "nodeType": "ExpressionStatement", - "src": "1528:24:14" + "src": "426:24:14" } ] }, - "documentation": null, - "id": 2739, + "functionSelector": "927cab47", + "id": 2851, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2730, + "id": 2842, "modifierName": { - "argumentTypes": null, - "id": 2729, + "id": 2841, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1508:9:14", + "referencedDeclaration": 3355, + "src": "406:9:14", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1508:9:14" + "src": "406:9:14" } ], "name": "addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2840, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "397:8:14" + }, "parameters": { - "id": 2728, + "id": 2839, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2727, + "id": 2838, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "1484:15:14", + "scope": 2851, + "src": "373:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -427,52 +418,49 @@ "typeString": "address" }, "typeName": { - "id": 2726, + "id": 2837, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1484:7:14", + "src": "373:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1483:17:14" + "src": "372:17:14" }, "returnParameters": { - "id": 2731, + "id": 2843, "nodeType": "ParameterList", "parameters": [], - "src": "1518:0:14" + "src": "416:0:14" }, - "scope": 2768, - "src": "1466:93:14", + "scope": 2881, + "src": "355:102:14", "stateMutability": "nonpayable", - "superFunction": 3245, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2748, + "id": 2860, "nodeType": "Block", - "src": "1610:38:14", + "src": "508:38:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2745, + "id": 2857, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "1633:7:14", + "referencedDeclaration": 2853, + "src": "531:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -486,18 +474,18 @@ "typeString": "address" } ], - "id": 2744, + "id": 2856, "name": "_removeJudge", "nodeType": "Identifier", - "overloadedDeclarations": [2767], - "referencedDeclaration": 2767, - "src": "1620:12:14", + "overloadedDeclarations": [2880], + "referencedDeclaration": 2880, + "src": "518:12:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2746, + "id": 2858, "isConstant": false, "isLValue": false, "isPure": false, @@ -505,36 +493,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1620:21:14", + "src": "518:21:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2747, + "id": 2859, "nodeType": "ExpressionStatement", - "src": "1620:21:14" + "src": "518:21:14" } ] }, - "documentation": null, - "id": 2749, + "functionSelector": "ae2ac4ae", + "id": 2861, "implemented": true, "kind": "function", "modifiers": [], "name": "removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 2742, + "id": 2854, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2741, + "id": 2853, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "1586:15:14", + "scope": 2861, + "src": "484:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -542,104 +532,100 @@ "typeString": "address" }, "typeName": { - "id": 2740, + "id": 2852, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:14", + "src": "484:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1585:17:14" + "src": "483:17:14" }, "returnParameters": { - "id": 2743, + "id": 2855, "nodeType": "ParameterList", "parameters": [], - "src": "1610:0:14" + "src": "508:0:14" }, - "scope": 2768, - "src": "1565:83:14", + "scope": 2881, + "src": "463:83:14", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2754, + "id": 2866, "nodeType": "Block", - "src": "1701:64:14", + "src": "599:64:14", "statements": [] }, - "documentation": null, - "id": 2755, + "functionSelector": "c13c90fd", + "id": 2867, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2752, + "id": 2864, "modifierName": { - "argumentTypes": null, - "id": 2751, + "id": 2863, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1691:9:14", + "referencedDeclaration": 3355, + "src": "589:9:14", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1691:9:14" + "src": "589:9:14" } ], "name": "onlyJudgeMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2750, + "id": 2862, "nodeType": "ParameterList", "parameters": [], - "src": "1676:2:14" + "src": "574:2:14" }, "returnParameters": { - "id": 2753, + "id": 2865, "nodeType": "ParameterList", "parameters": [], - "src": "1701:0:14" + "src": "599:0:14" }, - "scope": 2768, - "src": "1654:111:14", + "scope": 2881, + "src": "552:111:14", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3415], "body": { - "id": 2766, + "id": 2879, "nodeType": "Block", - "src": "1891:44:14", + "src": "798:44:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2763, + "id": 2876, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "1920:7:14", + "referencedDeclaration": 2869, + "src": "827:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -654,33 +640,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2760, + "id": 2873, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1901:5:14", + "referencedDeclaration": 4294967271, + "src": "808:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2762, + "id": 2875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3286, - "src": "1901:18:14", + "referencedDeclaration": 3415, + "src": "808:18:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2764, + "id": 2877, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,36 +673,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1901:27:14", + "src": "808:27:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2765, + "id": 2878, "nodeType": "ExpressionStatement", - "src": "1901:27:14" + "src": "808:27:14" } ] }, - "documentation": null, - "id": 2767, + "id": 2880, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2871, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "789:8:14" + }, "parameters": { - "id": 2758, + "id": 2870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2757, + "id": 2869, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "1865:15:14", + "scope": 2880, + "src": "763:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -725,130 +717,126 @@ "typeString": "address" }, "typeName": { - "id": 2756, + "id": 2868, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:14", + "src": "763:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1864:17:14" + "src": "762:17:14" }, "returnParameters": { - "id": 2759, + "id": 2872, "nodeType": "ParameterList", "parameters": [], - "src": "1891:0:14" + "src": "798:0:14" }, - "scope": 2768, - "src": "1843:92:14", + "scope": 2881, + "src": "741:101:14", "stateMutability": "nonpayable", - "superFunction": 3286, + "virtual": false, "visibility": "internal" } ], - "scope": 2769, - "src": "1341:596:14" + "scope": 2882, + "src": "237:607:14" } ], - "src": "1282:656:14" + "src": "170:675:14" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/JudgeRoleMock.sol", "exportedSymbols": { - "JudgeRoleMock": [2768] + "JudgeRole": [3416], + "JudgeRoleMock": [2881], + "Roles": [3618] }, - "id": 2769, + "id": 2882, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2709, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2820, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:14" + "src": "170:31:14" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/JudgeRole.sol", "file": "../roles/JudgeRole.sol", - "id": 2710, + "id": 2821, "nodeType": "ImportDirective", - "scope": 2769, - "sourceUnit": 3288, - "src": "1307:32:14", + "scope": 2882, + "sourceUnit": 3417, + "src": "203:32:14", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2711, + "id": 2822, "name": "JudgeRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3287, - "src": "1367:9:14", + "referencedDeclaration": 3416, + "src": "263:9:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_JudgeRole_$3287", + "typeIdentifier": "t_contract$_JudgeRole_$3416", "typeString": "contract JudgeRole" } }, - "id": 2712, + "id": 2823, "nodeType": "InheritanceSpecifier", - "src": "1367:9:14" + "src": "263:9:14" } ], - "contractDependencies": [3287], + "contractDependencies": [3416], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2768, - "linearizedBaseContracts": [2768, 3287], + "id": 2881, + "linearizedBaseContracts": [2881, 3416], "name": "JudgeRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2724, + "id": 2835, "nodeType": "Block", - "src": "1416:44:14", + "src": "305:44:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2720, + "id": 2831, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1442:3:14", + "referencedDeclaration": 4294967281, + "src": "331:3:14", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2721, + "id": 2832, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1442:10:14", + "src": "331:10:14", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -863,33 +851,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2717, + "id": 2828, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1426:5:14", + "referencedDeclaration": 4294967271, + "src": "315:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2719, + "id": 2830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1426:15:14", + "referencedDeclaration": 3399, + "src": "315:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2722, + "id": 2833, "isConstant": false, "isLValue": false, "isPure": false, @@ -897,81 +884,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:27:14", + "src": "315:27:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2723, + "id": 2834, "nodeType": "ExpressionStatement", - "src": "1426:27:14" + "src": "315:27:14" } ] }, - "documentation": null, - "id": 2725, + "id": 2836, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2715, + "id": 2826, "modifierName": { - "argumentTypes": null, - "id": 2714, + "id": 2825, "name": "JudgeRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "1404:9:14", + "referencedDeclaration": 3416, + "src": "293:9:14", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3287_$", + "typeIdentifier": "t_type$_t_contract$_JudgeRole_$3416_$", "typeString": "type(contract JudgeRole)" } }, "nodeType": "ModifierInvocation", - "src": "1404:11:14" + "src": "293:11:14" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2713, + "id": 2824, "nodeType": "ParameterList", "parameters": [], - "src": "1394:2:14" + "src": "290:2:14" }, "returnParameters": { - "id": 2716, + "id": 2827, "nodeType": "ParameterList", "parameters": [], - "src": "1416:0:14" + "src": "305:0:14" }, - "scope": 2768, - "src": "1383:77:14", + "scope": 2881, + "src": "279:70:14", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3374], "body": { - "id": 2738, + "id": 2850, "nodeType": "Block", - "src": "1518:41:14", + "src": "416:41:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2735, + "id": 2847, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "1544:7:14", + "referencedDeclaration": 2838, + "src": "442:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -986,33 +971,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2732, + "id": 2844, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1528:5:14", + "referencedDeclaration": 4294967271, + "src": "426:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2734, + "id": 2846, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_addJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3270, - "src": "1528:15:14", + "referencedDeclaration": 3399, + "src": "426:15:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2736, + "id": 2848, "isConstant": false, "isLValue": false, "isPure": false, @@ -1020,56 +1004,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1528:24:14", + "src": "426:24:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2737, + "id": 2849, "nodeType": "ExpressionStatement", - "src": "1528:24:14" + "src": "426:24:14" } ] }, - "documentation": null, - "id": 2739, + "functionSelector": "927cab47", + "id": 2851, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2730, + "id": 2842, "modifierName": { - "argumentTypes": null, - "id": 2729, + "id": 2841, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1508:9:14", + "referencedDeclaration": 3355, + "src": "406:9:14", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1508:9:14" + "src": "406:9:14" } ], "name": "addJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2840, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "397:8:14" + }, "parameters": { - "id": 2728, + "id": 2839, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2727, + "id": 2838, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2739, - "src": "1484:15:14", + "scope": 2851, + "src": "373:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1077,52 +1067,49 @@ "typeString": "address" }, "typeName": { - "id": 2726, + "id": 2837, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1484:7:14", + "src": "373:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1483:17:14" + "src": "372:17:14" }, "returnParameters": { - "id": 2731, + "id": 2843, "nodeType": "ParameterList", "parameters": [], - "src": "1518:0:14" + "src": "416:0:14" }, - "scope": 2768, - "src": "1466:93:14", + "scope": 2881, + "src": "355:102:14", "stateMutability": "nonpayable", - "superFunction": 3245, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2748, + "id": 2860, "nodeType": "Block", - "src": "1610:38:14", + "src": "508:38:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2745, + "id": 2857, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "1633:7:14", + "referencedDeclaration": 2853, + "src": "531:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1136,18 +1123,18 @@ "typeString": "address" } ], - "id": 2744, + "id": 2856, "name": "_removeJudge", "nodeType": "Identifier", - "overloadedDeclarations": [2767], - "referencedDeclaration": 2767, - "src": "1620:12:14", + "overloadedDeclarations": [2880], + "referencedDeclaration": 2880, + "src": "518:12:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2746, + "id": 2858, "isConstant": false, "isLValue": false, "isPure": false, @@ -1155,36 +1142,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1620:21:14", + "src": "518:21:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2747, + "id": 2859, "nodeType": "ExpressionStatement", - "src": "1620:21:14" + "src": "518:21:14" } ] }, - "documentation": null, - "id": 2749, + "functionSelector": "ae2ac4ae", + "id": 2861, "implemented": true, "kind": "function", "modifiers": [], "name": "removeJudge", "nodeType": "FunctionDefinition", "parameters": { - "id": 2742, + "id": 2854, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2741, + "id": 2853, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "1586:15:14", + "scope": 2861, + "src": "484:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1192,104 +1181,100 @@ "typeString": "address" }, "typeName": { - "id": 2740, + "id": 2852, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1586:7:14", + "src": "484:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1585:17:14" + "src": "483:17:14" }, "returnParameters": { - "id": 2743, + "id": 2855, "nodeType": "ParameterList", "parameters": [], - "src": "1610:0:14" + "src": "508:0:14" }, - "scope": 2768, - "src": "1565:83:14", + "scope": 2881, + "src": "463:83:14", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2754, + "id": 2866, "nodeType": "Block", - "src": "1701:64:14", + "src": "599:64:14", "statements": [] }, - "documentation": null, - "id": 2755, + "functionSelector": "c13c90fd", + "id": 2867, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2752, + "id": 2864, "modifierName": { - "argumentTypes": null, - "id": 2751, + "id": 2863, "name": "onlyJudge", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1691:9:14", + "referencedDeclaration": 3355, + "src": "589:9:14", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1691:9:14" + "src": "589:9:14" } ], "name": "onlyJudgeMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2750, + "id": 2862, "nodeType": "ParameterList", "parameters": [], - "src": "1676:2:14" + "src": "574:2:14" }, "returnParameters": { - "id": 2753, + "id": 2865, "nodeType": "ParameterList", "parameters": [], - "src": "1701:0:14" + "src": "599:0:14" }, - "scope": 2768, - "src": "1654:111:14", + "scope": 2881, + "src": "552:111:14", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3415], "body": { - "id": 2766, + "id": 2879, "nodeType": "Block", - "src": "1891:44:14", + "src": "798:44:14", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2763, + "id": 2876, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2757, - "src": "1920:7:14", + "referencedDeclaration": 2869, + "src": "827:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1304,33 +1289,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2760, + "id": 2873, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4289, - "src": "1901:5:14", + "referencedDeclaration": 4294967271, + "src": "808:5:14", "typeDescriptions": { - "typeIdentifier": "t_super$_JudgeRoleMock_$2768", + "typeIdentifier": "t_super$_JudgeRoleMock_$2881", "typeString": "contract super JudgeRoleMock" } }, - "id": 2762, + "id": 2875, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeJudge", "nodeType": "MemberAccess", - "referencedDeclaration": 3286, - "src": "1901:18:14", + "referencedDeclaration": 3415, + "src": "808:18:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2764, + "id": 2877, "isConstant": false, "isLValue": false, "isPure": false, @@ -1338,36 +1322,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1901:27:14", + "src": "808:27:14", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2765, + "id": 2878, "nodeType": "ExpressionStatement", - "src": "1901:27:14" + "src": "808:27:14" } ] }, - "documentation": null, - "id": 2767, + "id": 2880, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeJudge", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2871, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "789:8:14" + }, "parameters": { - "id": 2758, + "id": 2870, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2757, + "id": 2869, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2767, - "src": "1865:15:14", + "scope": 2880, + "src": "763:15:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1375,52 +1366,59 @@ "typeString": "address" }, "typeName": { - "id": 2756, + "id": 2868, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1865:7:14", + "src": "763:7:14", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1864:17:14" + "src": "762:17:14" }, "returnParameters": { - "id": 2759, + "id": 2872, "nodeType": "ParameterList", "parameters": [], - "src": "1891:0:14" + "src": "798:0:14" }, - "scope": 2768, - "src": "1843:92:14", + "scope": 2881, + "src": "741:101:14", "stateMutability": "nonpayable", - "superFunction": 3286, + "virtual": false, "visibility": "internal" } ], - "scope": 2769, - "src": "1341:596:14" + "scope": 2882, + "src": "237:607:14" } ], - "src": "1282:656:14" + "src": "170:675:14" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.513Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.104Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": { + "addJudge(address)": { + "notice": "@dev Needs to be implemented by a inherited contract." + } + }, + "version": 1 } } diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index d49cf76..4c1922d 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -3,12 +3,10 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { - "constant": true, "inputs": [], "name": "last_completed_migration", "outputs": [ @@ -18,12 +16,10 @@ "type": "uint256" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "owner", "outputs": [ @@ -33,12 +29,10 @@ "type": "address" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "uint256", @@ -48,12 +42,10 @@ ], "name": "setCompleted", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -63,17 +55,19 @@ ], "name": "upgrade", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol\":{\"keccak256\":\"0xfdb731592344e2a2890faf03baec7b4bee7057ffba18ba6dbb6eec8db85f8f4c\",\"urls\":[\"bzz-raw://f9b488bbb84816dd04c1b155e943319758db16ee943943648fb264bccecc9879\",\"dweb:/ipfs/QmbW34mYrj3uLteyHf3S46pnp9bnwovtCXHbdBHfzMkSZx\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a7231582048640d520c6524a42c15054b65a9019b594ee98bd05a6cfbd8a892dc008ae5f164736f6c634300050c0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a7231582048640d520c6524a42c15054b65a9019b594ee98bd05a6cfbd8a892dc008ae5f164736f6c634300050c0032", - "sourceMap": "34:480:0:-;;;123:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;150:5:0;:18;;-1:-1:-1;;;;;;150:18:0;158:10;150:18;;;34:480;;;;;;", - "deployedSourceMap": "34:480:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:480:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;347:165:0;-1:-1:-1;;;;;347:165:0;;:::i;:::-;;82:36;;;:::i;:::-;;;;;;;;;;;;;;;;58:20;;;:::i;:::-;;;;-1:-1:-1;;;;;58:20:0;;;;;;;;;;;;;;240:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;240:103:0;;:::i;347:165::-;223:5;;-1:-1:-1;;;;;223:5:0;209:10;:19;205:26;;;409:19;442:11;409:45;;460:8;-1:-1:-1;;;;;460:21:0;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;460:47:0;;;;230:1;205:26;347:165;:::o;82:36::-;;;;:::o;58:20::-;;;-1:-1:-1;;;;;58:20:0;;:::o;240:103::-;223:5;;-1:-1:-1;;;;;223:5:0;209:10;:19;205:26;;;302:24;:36;240:103::o", - "source": "pragma solidity >=0.4.21 <0.6.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol\":{\"keccak256\":\"0xe386f6e633d2175acaaf71779a05202a5dfdf349abe45db2e3b5b6dca88cbb8e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0bc478bad31db4a85ff1cb7045b6249a70f167b3f316142d9695a36ce703826e\",\"dweb:/ipfs/QmaxSgJqGTZzgiuvYpkcvhdVBj5rJ2WWtuck6WxRKZhfr3\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b4806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea2646970667358221220ddbd6c760d371d228316f106ba8ffa3088df1a1441ecfc1626e518ca1bd8706564736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea2646970667358221220ddbd6c760d371d228316f106ba8ffa3088df1a1441ecfc1626e518ca1bd8706564736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "73:473:0:-:0;;;162:43;;;;;;;;;-1:-1:-1;182:5:0;:18;;-1:-1:-1;;;;;;182:18:0;190:10;182:18;;;73:473;;;;;;", + "deployedSourceMap": "73:473:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;379:165;;;;;;;;;;;;;;;;-1:-1:-1;379:165:0;-1:-1:-1;;;;;379:165:0;;:::i;:::-;;121:36;;;:::i;:::-;;;;;;;;;;;;;;;;97:20;;;:::i;:::-;;;;-1:-1:-1;;;;;97:20:0;;;;;;;;;;;;;;272:103;;;;;;;;;;;;;;;;-1:-1:-1;272:103:0;;:::i;379:165::-;255:5;;-1:-1:-1;;;;;255:5:0;241:10;:19;237:26;;;441:19:::1;474:11;441:45;;492:8;-1:-1:-1::0;;;;;492:21:0::1;;514:24;;492:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;262:1;237:26:::0;379:165;:::o;121:36::-;;;;:::o;97:20::-;;;-1:-1:-1;;;;;97:20:0;;:::o;272:103::-;255:5;;-1:-1:-1;;;;;255:5:0;241:10;:19;237:26;;;334:24:::1;:36:::0;272:103::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol", @@ -81,19 +75,20 @@ "Migrations": [56] }, "id": 57, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { "id": 1, - "literals": ["solidity", ">=", "0.4", ".21", "<", "0.6", ".0"], + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:32:0" + "src": "40:31:0" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, "id": 56, "linearizedBaseContracts": [56], @@ -102,11 +97,13 @@ "nodes": [ { "constant": false, + "functionSelector": "8da5cb5b", "id": 3, + "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "scope": 56, - "src": "58:20:0", + "src": "97:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -117,23 +114,24 @@ "id": 2, "name": "address", "nodeType": "ElementaryTypeName", - "src": "58:7:0", + "src": "97:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "public" }, { "constant": false, + "functionSelector": "445df0ac", "id": 5, + "mutability": "mutable", "name": "last_completed_migration", "nodeType": "VariableDeclaration", "scope": 56, - "src": "82:36:0", + "src": "121:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,37 +142,34 @@ "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "82:4:0", + "src": "121:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "public" }, { "body": { "id": 13, "nodeType": "Block", - "src": "144:29:0", + "src": "176:29:0", "statements": [ { "expression": { - "argumentTypes": null, "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "id": 8, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, - "src": "150:5:0", + "src": "182:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -183,15 +178,13 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "id": 9, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "158:3:0", + "referencedDeclaration": 4294967281, + "src": "190:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -204,14 +197,13 @@ "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "158:10:0", + "src": "190:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "150:18:0", + "src": "182:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -219,11 +211,10 @@ }, "id": 12, "nodeType": "ExpressionStatement", - "src": "150:18:0" + "src": "182:18:0" } ] }, - "documentation": null, "id": 14, "implemented": true, "kind": "constructor", @@ -234,29 +225,28 @@ "id": 6, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:0" + "src": "173:2:0" }, "returnParameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], - "src": "144:0:0" + "src": "176:0:0" }, "scope": 56, - "src": "123:50:0", + "src": "162:43:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { "id": 22, "nodeType": "Block", - "src": "199:37:0", + "src": "231:37:0", "statements": [ { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" @@ -267,15 +257,13 @@ "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "id": 16, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "209:3:0", + "referencedDeclaration": 4294967281, + "src": "241:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -288,8 +276,7 @@ "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "209:10:0", + "src": "241:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -298,37 +285,34 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "id": 18, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, - "src": "223:5:0", + "src": "255:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "209:19:0", + "src": "241:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, "id": 21, "nodeType": "IfStatement", - "src": "205:26:0", + "src": "237:26:0", "trueBody": { "id": 20, "nodeType": "PlaceholderStatement", - "src": "230:1:0" + "src": "262:1:0" } } ] }, - "documentation": null, "id": 23, "name": "restricted", "nodeType": "ModifierDefinition", @@ -336,33 +320,32 @@ "id": 15, "nodeType": "ParameterList", "parameters": [], - "src": "196:2:0" + "src": "228:2:0" }, - "src": "177:59:0", + "src": "209:59:0", + "virtual": false, "visibility": "internal" }, { "body": { "id": 34, "nodeType": "Block", - "src": "296:47:0", + "src": "328:47:0", "statements": [ { "expression": { - "argumentTypes": null, "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, - "src": "302:24:0", + "src": "334:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -371,19 +354,18 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "id": 31, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, - "src": "329:9:0", + "src": "361:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "302:36:0", + "src": "334:36:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,33 +373,31 @@ }, "id": 33, "nodeType": "ExpressionStatement", - "src": "302:36:0" + "src": "334:36:0" } ] }, - "documentation": null, + "functionSelector": "fdacd576", "id": 35, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, "id": 28, "modifierName": { - "argumentTypes": null, "id": 27, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "285:10:0", + "src": "317:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "285:10:0" + "src": "317:10:0" } ], "name": "setCompleted", @@ -429,10 +409,11 @@ { "constant": false, "id": 25, + "mutability": "mutable", "name": "completed", "nodeType": "VariableDeclaration", "scope": 35, - "src": "262:14:0", + "src": "294:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -443,35 +424,34 @@ "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "262:4:0", + "src": "294:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "261:16:0" + "src": "293:16:0" }, "returnParameters": { "id": 29, "nodeType": "ParameterList", "parameters": [], - "src": "296:0:0" + "src": "328:0:0" }, "scope": 56, - "src": "240:103:0", + "src": "272:103:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { "id": 54, "nodeType": "Block", - "src": "403:109:0", + "src": "435:109:0", "statements": [ { "assignments": [43], @@ -479,10 +459,11 @@ { "constant": false, "id": 43, + "mutability": "mutable", "name": "upgraded", "nodeType": "VariableDeclaration", "scope": 54, - "src": "409:19:0", + "src": "441:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -490,33 +471,29 @@ "typeString": "contract Migrations" }, "typeName": { - "contractScope": null, "id": 42, "name": "Migrations", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 56, - "src": "409:10:0", + "src": "441:10:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, - "value": null, "visibility": "internal" } ], "id": 47, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "id": 45, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, - "src": "442:11:0", + "src": "474:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -535,7 +512,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, - "src": "431:10:0", + "src": "463:10:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", "typeString": "type(contract Migrations)" @@ -549,27 +526,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "431:23:0", + "src": "463:23:0", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "409:45:0" + "src": "441:45:0" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "id": 51, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, - "src": "482:24:0", + "src": "514:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -584,13 +560,12 @@ } ], "expression": { - "argumentTypes": null, "id": 48, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, - "src": "460:8:0", + "src": "492:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" @@ -604,7 +579,7 @@ "memberName": "setCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "460:21:0", + "src": "492:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" @@ -618,7 +593,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "460:47:0", + "src": "492:47:0", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -626,33 +602,31 @@ }, "id": 53, "nodeType": "ExpressionStatement", - "src": "460:47:0" + "src": "492:47:0" } ] }, - "documentation": null, + "functionSelector": "0900f010", "id": 55, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, "id": 40, "modifierName": { - "argumentTypes": null, "id": 39, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "392:10:0", + "src": "424:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "392:10:0" + "src": "424:10:0" } ], "name": "upgrade", @@ -664,10 +638,11 @@ { "constant": false, "id": 37, + "mutability": "mutable", "name": "new_address", "nodeType": "VariableDeclaration", "scope": 55, - "src": "364:19:0", + "src": "396:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -678,37 +653,36 @@ "id": 36, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:0", + "src": "396:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "363:21:0" + "src": "395:21:0" }, "returnParameters": { "id": 41, "nodeType": "ParameterList", "parameters": [], - "src": "403:0:0" + "src": "435:0:0" }, "scope": 56, - "src": "347:165:0", + "src": "379:165:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" } ], "scope": 57, - "src": "34:480:0" + "src": "73:473:0" } ], - "src": "0:515:0" + "src": "40:507:0" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/Migrations.sol", @@ -716,19 +690,20 @@ "Migrations": [56] }, "id": 57, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { "id": 1, - "literals": ["solidity", ">=", "0.4", ".21", "<", "0.6", ".0"], + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:32:0" + "src": "40:31:0" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, "id": 56, "linearizedBaseContracts": [56], @@ -737,11 +712,13 @@ "nodes": [ { "constant": false, + "functionSelector": "8da5cb5b", "id": 3, + "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "scope": 56, - "src": "58:20:0", + "src": "97:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -752,23 +729,24 @@ "id": 2, "name": "address", "nodeType": "ElementaryTypeName", - "src": "58:7:0", + "src": "97:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "public" }, { "constant": false, + "functionSelector": "445df0ac", "id": 5, + "mutability": "mutable", "name": "last_completed_migration", "nodeType": "VariableDeclaration", "scope": 56, - "src": "82:36:0", + "src": "121:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -779,37 +757,34 @@ "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "82:4:0", + "src": "121:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "public" }, { "body": { "id": 13, "nodeType": "Block", - "src": "144:29:0", + "src": "176:29:0", "statements": [ { "expression": { - "argumentTypes": null, "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "id": 8, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, - "src": "150:5:0", + "src": "182:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -818,15 +793,13 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "id": 9, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "158:3:0", + "referencedDeclaration": 4294967281, + "src": "190:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -839,14 +812,13 @@ "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "158:10:0", + "src": "190:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "150:18:0", + "src": "182:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -854,11 +826,10 @@ }, "id": 12, "nodeType": "ExpressionStatement", - "src": "150:18:0" + "src": "182:18:0" } ] }, - "documentation": null, "id": 14, "implemented": true, "kind": "constructor", @@ -869,29 +840,28 @@ "id": 6, "nodeType": "ParameterList", "parameters": [], - "src": "134:2:0" + "src": "173:2:0" }, "returnParameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], - "src": "144:0:0" + "src": "176:0:0" }, "scope": 56, - "src": "123:50:0", + "src": "162:43:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { "id": 22, "nodeType": "Block", - "src": "199:37:0", + "src": "231:37:0", "statements": [ { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" @@ -902,15 +872,13 @@ "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, "id": 16, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "209:3:0", + "referencedDeclaration": 4294967281, + "src": "241:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" @@ -923,8 +891,7 @@ "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "209:10:0", + "src": "241:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -933,37 +900,34 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "id": 18, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, - "src": "223:5:0", + "src": "255:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "209:19:0", + "src": "241:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, "id": 21, "nodeType": "IfStatement", - "src": "205:26:0", + "src": "237:26:0", "trueBody": { "id": 20, "nodeType": "PlaceholderStatement", - "src": "230:1:0" + "src": "262:1:0" } } ] }, - "documentation": null, "id": 23, "name": "restricted", "nodeType": "ModifierDefinition", @@ -971,33 +935,32 @@ "id": 15, "nodeType": "ParameterList", "parameters": [], - "src": "196:2:0" + "src": "228:2:0" }, - "src": "177:59:0", + "src": "209:59:0", + "virtual": false, "visibility": "internal" }, { "body": { "id": 34, "nodeType": "Block", - "src": "296:47:0", + "src": "328:47:0", "statements": [ { "expression": { - "argumentTypes": null, "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, - "src": "302:24:0", + "src": "334:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1006,19 +969,18 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "id": 31, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, - "src": "329:9:0", + "src": "361:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "302:36:0", + "src": "334:36:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1026,33 +988,31 @@ }, "id": 33, "nodeType": "ExpressionStatement", - "src": "302:36:0" + "src": "334:36:0" } ] }, - "documentation": null, + "functionSelector": "fdacd576", "id": 35, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, "id": 28, "modifierName": { - "argumentTypes": null, "id": 27, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "285:10:0", + "src": "317:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "285:10:0" + "src": "317:10:0" } ], "name": "setCompleted", @@ -1064,10 +1024,11 @@ { "constant": false, "id": 25, + "mutability": "mutable", "name": "completed", "nodeType": "VariableDeclaration", "scope": 35, - "src": "262:14:0", + "src": "294:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1078,35 +1039,34 @@ "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "262:4:0", + "src": "294:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "261:16:0" + "src": "293:16:0" }, "returnParameters": { "id": 29, "nodeType": "ParameterList", "parameters": [], - "src": "296:0:0" + "src": "328:0:0" }, "scope": 56, - "src": "240:103:0", + "src": "272:103:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { "id": 54, "nodeType": "Block", - "src": "403:109:0", + "src": "435:109:0", "statements": [ { "assignments": [43], @@ -1114,10 +1074,11 @@ { "constant": false, "id": 43, + "mutability": "mutable", "name": "upgraded", "nodeType": "VariableDeclaration", "scope": 54, - "src": "409:19:0", + "src": "441:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1125,33 +1086,29 @@ "typeString": "contract Migrations" }, "typeName": { - "contractScope": null, "id": 42, "name": "Migrations", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 56, - "src": "409:10:0", + "src": "441:10:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, - "value": null, "visibility": "internal" } ], "id": 47, "initialValue": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "id": 45, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 37, - "src": "442:11:0", + "src": "474:11:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1170,7 +1127,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 56, - "src": "431:10:0", + "src": "463:10:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Migrations_$56_$", "typeString": "type(contract Migrations)" @@ -1184,27 +1141,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "431:23:0", + "src": "463:23:0", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "409:45:0" + "src": "441:45:0" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "id": 51, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, - "src": "482:24:0", + "src": "514:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1219,13 +1175,12 @@ } ], "expression": { - "argumentTypes": null, "id": 48, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 43, - "src": "460:8:0", + "src": "492:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$56", "typeString": "contract Migrations" @@ -1239,7 +1194,7 @@ "memberName": "setCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "460:21:0", + "src": "492:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" @@ -1253,7 +1208,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "460:47:0", + "src": "492:47:0", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -1261,33 +1217,31 @@ }, "id": 53, "nodeType": "ExpressionStatement", - "src": "460:47:0" + "src": "492:47:0" } ] }, - "documentation": null, + "functionSelector": "0900f010", "id": 55, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, "id": 40, "modifierName": { - "argumentTypes": null, "id": 39, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "392:10:0", + "src": "424:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "392:10:0" + "src": "424:10:0" } ], "name": "upgrade", @@ -1299,10 +1253,11 @@ { "constant": false, "id": 37, + "mutability": "mutable", "name": "new_address", "nodeType": "VariableDeclaration", "scope": 55, - "src": "364:19:0", + "src": "396:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1313,69 +1268,52 @@ "id": 36, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:0", + "src": "396:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "363:21:0" + "src": "395:21:0" }, "returnParameters": { "id": 41, "nodeType": "ParameterList", "parameters": [], - "src": "403:0:0" + "src": "435:0:0" }, "scope": 56, - "src": "347:165:0", + "src": "379:165:0", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" } ], "scope": 57, - "src": "34:480:0" + "src": "73:473:0" } ], - "src": "0:515:0" + "src": "40:507:0" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, - "networks": { - "3": { - "events": {}, - "links": {}, - "address": "0xA4a36DB7F7118E79b55927b3e157BCd5631f6DD3", - "transactionHash": "0x72378699f4eebcd73cdf474d85827f5b126388b379560c44a31d532462dbf5c0" - }, - "42": { - "events": {}, - "links": {}, - "address": "0x585e9830247cF1cB8f1EE0541a759b59c80594F4", - "transactionHash": "0x31f3ca504e5d421ca0d766fd177010b6ac1c4a2d6cc5c232ba0c30beda62d777" - }, - "5777": { - "events": {}, - "links": {}, - "address": "0x2C640f04eaEc52cBd1C1703B9Aaf35588B82ca8E", - "transactionHash": "0xfd4256e37066348cc5fec356bfcb6e2c32aea0d91f49e6766a90e5a650680707" - } - }, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:37:34.463Z", - "networkType": "ethereum", + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:16.989Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } diff --git a/build/contracts/OrganizerRole.json b/build/contracts/OrganizerRole.json index bc0137b..fabdc34 100644 --- a/build/contracts/OrganizerRole.json +++ b/build/contracts/OrganizerRole.json @@ -1,18 +1,6 @@ { "contractName": "OrganizerRole", "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "initialOrganizer", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -40,7 +28,6 @@ "type": "event" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -56,12 +43,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -71,110 +56,116 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOrganizer\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Implements a access control for a Organizer role, which will be responsible for managing hackathons/contests.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":\"OrganizerRole\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Implements a access control for a Organizer role, which will be responsible for managing hackathons/contests.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":\"OrganizerRole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\npragma solidity ^0.5.0;\n\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\n/**\n @notice Implements a access control for a Organizer role,\n which will be responsible for managing hackathons/contests.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\ncontract OrganizerRole {\n using Roles for Roles.Role;\n\n event OrganizerAdded(address indexed account);\n event OrganizerRemoved(address indexed account);\n\n Roles.Role private _organizers;\n\n constructor(address initialOrganizer) internal {\n require(initialOrganizer != address(0), \"Invalid zero address\");\n _addOrganizer(initialOrganizer);\n }\n\n modifier onlyOrganizer() {\n require(isOrganizer(msg.sender), \"OrganizerRole: caller does not have Organizer Role.\");\n _;\n }\n\n function isOrganizer(address account) public view returns (bool) {\n return _organizers.has(account);\n }\n\n function addOrganizer(address account) public onlyOrganizer {\n _addOrganizer(account);\n }\n\n function renounceOrganizer() public {\n _removeOrganizer(msg.sender);\n }\n\n function _addOrganizer(address account) internal {\n _organizers.add(account);\n emit OrganizerAdded(account);\n }\n\n function _removeOrganizer(address account) internal {\n _organizers.remove(account);\n emit OrganizerRemoved(account);\n }\n}\n", + "source": "// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol\n\n// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"./Roles.sol\";\n\n/**\n @notice Implements a access control for a Organizer role,\n which will be responsible for managing hackathons/contests.\n @dev not detailed documentation, since its based on OpenZeppelin.\n Take a look at the repo for further info.\n */\nabstract contract OrganizerRole {\n using Roles for Roles.Role;\n\n event OrganizerAdded(address indexed account);\n event OrganizerRemoved(address indexed account);\n\n Roles.Role private _organizers;\n\n constructor(address initialOrganizer) {\n require(initialOrganizer != address(0), \"Invalid zero address\");\n _addOrganizer(initialOrganizer);\n }\n\n modifier onlyOrganizer() {\n require(isOrganizer(msg.sender), \"OrganizerRole: caller does not have Organizer Role.\");\n _;\n }\n\n function isOrganizer(address account) public view returns (bool) {\n return _organizers.has(account);\n }\n\n function addOrganizer(address account) public onlyOrganizer {\n _addOrganizer(account);\n }\n\n function renounceOrganizer() public {\n _removeOrganizer(msg.sender);\n }\n\n function _addOrganizer(address account) internal virtual {\n _organizers.add(account);\n emit OrganizerAdded(account);\n }\n\n function _removeOrganizer(address account) internal virtual {\n _organizers.remove(account);\n emit OrganizerRemoved(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "exportedSymbols": { - "OrganizerRole": [3401] + "OrganizerRole": [3532], + "Roles": [3618] }, - "id": 3402, + "id": 3533, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3289, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3418, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:22" + "src": "173:31:22" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 3290, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3419, "nodeType": "ImportDirective", - "scope": 3402, - "sourceUnit": 4083, - "src": "1310:58:22", + "scope": 3533, + "sourceUnit": 3619, + "src": "206:21:22", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for a Organizer role,\nwhich will be responsible for managing hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3420, + "nodeType": "StructuredDocumentation", + "src": "229:249:22", + "text": "@notice Implements a access control for a Organizer role,\nwhich will be responsible for managing hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": true, - "id": 3401, - "linearizedBaseContracts": [3401], + "id": 3532, + "linearizedBaseContracts": [3532], "name": "OrganizerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3293, + "id": 3423, "libraryName": { - "contractScope": null, - "id": 3291, + "id": 3421, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1655:5:22", + "referencedDeclaration": 3618, + "src": "523:5:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1649:27:22", + "src": "517:27:22", "typeName": { - "contractScope": null, - "id": 3292, + "id": 3422, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1665:10:22", + "referencedDeclaration": 3540, + "src": "533:10:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 3297, + "id": 3427, "name": "OrganizerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 3296, + "id": 3426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3295, + "id": 3425, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "1703:23:22", + "scope": 3427, + "src": "571:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -182,42 +173,41 @@ "typeString": "address" }, "typeName": { - "id": 3294, + "id": 3424, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1703:7:22", + "src": "571:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1702:25:22" + "src": "570:25:22" }, - "src": "1682:46:22" + "src": "550:46:22" }, { "anonymous": false, - "documentation": null, - "id": 3301, + "id": 3431, "name": "OrganizerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 3300, + "id": 3430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3299, + "id": 3429, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3301, - "src": "1756:23:22", + "scope": 3431, + "src": "624:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -225,81 +215,76 @@ "typeString": "address" }, "typeName": { - "id": 3298, + "id": 3428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1756:7:22", + "src": "624:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1755:25:22" + "src": "623:25:22" }, - "src": "1733:48:22" + "src": "601:48:22" }, { "constant": false, - "id": 3303, + "id": 3433, + "mutability": "mutable", "name": "_organizers", "nodeType": "VariableDeclaration", - "scope": 3401, - "src": "1787:30:22", + "scope": 3532, + "src": "655:30:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 3302, + "id": 3432, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1787:10:22", + "referencedDeclaration": 3540, + "src": "655:10:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 3321, + "id": 3452, "nodeType": "Block", - "src": "1871:121:22", + "src": "730:121:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3313, + "id": 3444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 3309, + "id": 3439, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3305, - "src": "1889:16:22", + "referencedDeclaration": 3435, + "src": "748:16:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -308,20 +293,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 3311, + "id": 3442, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1917:1:22", - "subdenomination": null, + "src": "776:1:22", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -336,20 +318,26 @@ "typeString": "int_const 0" } ], - "id": 3310, + "id": 3441, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1909:7:22", + "src": "768:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "768:7:22", + "typeDescriptions": {} + } }, - "id": 3312, + "id": 3443, "isConstant": false, "isLValue": false, "isPure": true, @@ -357,30 +345,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1909:10:22", + "src": "768:10:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1889:30:22", + "src": "748:30:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 3314, + "id": 3445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1921:22:22", - "subdenomination": null, + "src": "780:22:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -399,18 +386,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 3308, + "id": 3438, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1881:7:22", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "740:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3315, + "id": 3446, "isConstant": false, "isLValue": false, "isPure": false, @@ -418,28 +405,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1881:63:22", + "src": "740:63:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3316, + "id": 3447, "nodeType": "ExpressionStatement", - "src": "1881:63:22" + "src": "740:63:22" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3318, + "id": 3449, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3305, - "src": "1968:16:22", + "referencedDeclaration": 3435, + "src": "827:16:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -453,18 +439,18 @@ "typeString": "address" } ], - "id": 3317, + "id": 3448, "name": "_addOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "1954:13:22", + "referencedDeclaration": 3515, + "src": "813:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3319, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -472,36 +458,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1954:31:22", + "src": "813:31:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3320, + "id": 3451, "nodeType": "ExpressionStatement", - "src": "1954:31:22" + "src": "813:31:22" } ] }, - "documentation": null, - "id": 3322, + "id": 3453, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3306, + "id": 3436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3305, + "id": 3435, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 3322, - "src": "1836:24:22", + "scope": 3453, + "src": "704:24:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -509,71 +496,65 @@ "typeString": "address" }, "typeName": { - "id": 3304, + "id": 3434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1836:7:22", + "src": "704:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1835:26:22" + "src": "703:26:22" }, "returnParameters": { - "id": 3307, + "id": 3437, "nodeType": "ParameterList", "parameters": [], - "src": "1871:0:22" + "src": "730:0:22" }, - "scope": 3401, - "src": "1824:168:22", + "scope": 3532, + "src": "692:159:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3333, + "id": 3464, "nodeType": "Block", - "src": "2023:115:22", + "src": "882:115:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3326, + "id": 3457, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2053:3:22", + "referencedDeclaration": 4294967281, + "src": "912:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3327, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2053:10:22", + "src": "912:10:22", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -587,18 +568,18 @@ "typeString": "address payable" } ], - "id": 3325, + "id": 3456, "name": "isOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "2041:11:22", + "referencedDeclaration": 3478, + "src": "900:11:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3328, + "id": 3459, "isConstant": false, "isLValue": false, "isPure": false, @@ -606,24 +587,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2041:23:22", + "src": "900:23:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e", - "id": 3329, + "id": 3460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2066:53:22", - "subdenomination": null, + "src": "925:53:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_477386f0904873d9bdc213d9a80eb43fff1cfdad1f5295ccfa2b7fca36545b5d", "typeString": "literal_string \"OrganizerRole: caller does not have Organizer Role.\"" @@ -642,18 +622,18 @@ "typeString": "literal_string \"OrganizerRole: caller does not have Organizer Role.\"" } ], - "id": 3324, + "id": 3455, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2033:7:22", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "892:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3330, + "id": 3461, "isConstant": false, "isLValue": false, "isPure": false, @@ -661,54 +641,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:87:22", + "src": "892:87:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3331, + "id": 3462, "nodeType": "ExpressionStatement", - "src": "2033:87:22" + "src": "892:87:22" }, { - "id": 3332, + "id": 3463, "nodeType": "PlaceholderStatement", - "src": "2130:1:22" + "src": "989:1:22" } ] }, - "documentation": null, - "id": 3334, + "id": 3465, "name": "onlyOrganizer", "nodeType": "ModifierDefinition", "parameters": { - "id": 3323, + "id": 3454, "nodeType": "ParameterList", "parameters": [], - "src": "2020:2:22" + "src": "879:2:22" }, - "src": "1998:140:22", + "src": "857:140:22", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3346, + "id": 3477, "nodeType": "Block", - "src": "2209:48:22", + "src": "1068:48:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3343, + "id": 3474, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "2242:7:22", + "referencedDeclaration": 3467, + "src": "1101:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -723,33 +702,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3341, + "id": 3472, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2226:11:22", + "referencedDeclaration": 3433, + "src": "1085:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3342, + "id": 3473, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2226:15:22", + "referencedDeclaration": 3617, + "src": "1085:15:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 3344, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": false, @@ -757,37 +735,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:24:22", + "src": "1085:24:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3340, - "id": 3345, + "functionReturnParameters": 3471, + "id": 3476, "nodeType": "Return", - "src": "2219:31:22" + "src": "1078:31:22" } ] }, - "documentation": null, - "id": 3347, + "functionSelector": "41676f15", + "id": 3478, "implemented": true, "kind": "function", "modifiers": [], "name": "isOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3337, + "id": 3468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3336, + "id": 3467, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "2165:15:22", + "scope": 3478, + "src": "1024:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,33 +775,33 @@ "typeString": "address" }, "typeName": { - "id": 3335, + "id": 3466, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2165:7:22", + "src": "1024:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2164:17:22" + "src": "1023:17:22" }, "returnParameters": { - "id": 3340, + "id": 3471, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3339, + "id": 3470, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "2203:4:22", + "scope": 3478, + "src": "1062:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -829,45 +809,42 @@ "typeString": "bool" }, "typeName": { - "id": 3338, + "id": 3469, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2203:4:22", + "src": "1062:4:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2202:6:22" + "src": "1061:6:22" }, - "scope": 3401, - "src": "2144:113:22", + "scope": 3532, + "src": "1003:113:22", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3358, + "id": 3489, "nodeType": "Block", - "src": "2323:39:22", + "src": "1182:39:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3355, + "id": 3486, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "2347:7:22", + "referencedDeclaration": 3480, + "src": "1206:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -881,18 +858,18 @@ "typeString": "address" } ], - "id": 3354, + "id": 3485, "name": "_addOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "2333:13:22", + "referencedDeclaration": 3515, + "src": "1192:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3356, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, @@ -900,56 +877,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2333:22:22", + "src": "1192:22:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3357, + "id": 3488, "nodeType": "ExpressionStatement", - "src": "2333:22:22" + "src": "1192:22:22" } ] }, - "documentation": null, - "id": 3359, + "functionSelector": "e4725f02", + "id": 3490, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3352, + "id": 3483, "modifierName": { - "argumentTypes": null, - "id": 3351, + "id": 3482, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "2309:13:22", + "referencedDeclaration": 3465, + "src": "1168:13:22", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2309:13:22" + "src": "1168:13:22" } ], "name": "addOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3350, + "id": 3481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3349, + "id": 3480, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "2285:15:22", + "scope": 3490, + "src": "1144:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -957,68 +934,63 @@ "typeString": "address" }, "typeName": { - "id": 3348, + "id": 3479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2285:7:22", + "src": "1144:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2284:17:22" + "src": "1143:17:22" }, "returnParameters": { - "id": 3353, + "id": 3484, "nodeType": "ParameterList", "parameters": [], - "src": "2323:0:22" + "src": "1182:0:22" }, - "scope": 3401, - "src": "2263:99:22", + "scope": 3532, + "src": "1122:99:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3367, + "id": 3498, "nodeType": "Block", - "src": "2404:45:22", + "src": "1263:45:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3363, + "id": 3494, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2431:3:22", + "referencedDeclaration": 4294967281, + "src": "1290:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3364, + "id": 3495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2431:10:22", + "src": "1290:10:22", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1032,18 +1004,18 @@ "typeString": "address payable" } ], - "id": 3362, + "id": 3493, "name": "_removeOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "2414:16:22", + "referencedDeclaration": 3531, + "src": "1273:16:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3365, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, @@ -1051,61 +1023,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2414:28:22", + "src": "1273:28:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3366, + "id": 3497, "nodeType": "ExpressionStatement", - "src": "2414:28:22" + "src": "1273:28:22" } ] }, - "documentation": null, - "id": 3368, + "functionSelector": "567ad862", + "id": 3499, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3360, + "id": 3491, "nodeType": "ParameterList", "parameters": [], - "src": "2394:2:22" + "src": "1253:2:22" }, "returnParameters": { - "id": 3361, + "id": 3492, "nodeType": "ParameterList", "parameters": [], - "src": "2404:0:22" + "src": "1263:0:22" }, - "scope": 3401, - "src": "2368:81:22", + "scope": 3532, + "src": "1227:81:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3383, + "id": 3514, "nodeType": "Block", - "src": "2504:79:22", + "src": "1371:79:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3376, + "id": 3507, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2530:7:22", + "referencedDeclaration": 3501, + "src": "1397:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1120,33 +1091,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3373, + "id": 3504, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2514:11:22", + "referencedDeclaration": 3433, + "src": "1381:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3375, + "id": 3506, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2514:15:22", + "referencedDeclaration": 3566, + "src": "1381:15:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3377, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, @@ -1154,28 +1124,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2514:24:22", + "src": "1381:24:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3378, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "2514:24:22" + "src": "1381:24:22" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3380, + "id": 3511, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2568:7:22", + "referencedDeclaration": 3501, + "src": "1435:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1158,18 @@ "typeString": "address" } ], - "id": 3379, + "id": 3510, "name": "OrganizerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "2553:14:22", + "referencedDeclaration": 3427, + "src": "1420:14:22", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3381, + "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,36 +1177,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2553:23:22", + "src": "1420:23:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3382, + "id": 3513, "nodeType": "EmitStatement", - "src": "2548:28:22" + "src": "1415:28:22" } ] }, - "documentation": null, - "id": 3384, + "id": 3515, "implemented": true, "kind": "function", "modifiers": [], "name": "_addOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3371, + "id": 3502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3370, + "id": 3501, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3384, - "src": "2478:15:22", + "scope": 3515, + "src": "1337:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1245,52 +1215,49 @@ "typeString": "address" }, "typeName": { - "id": 3369, + "id": 3500, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2478:7:22", + "src": "1337:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2477:17:22" + "src": "1336:17:22" }, "returnParameters": { - "id": 3372, + "id": 3503, "nodeType": "ParameterList", "parameters": [], - "src": "2504:0:22" + "src": "1371:0:22" }, - "scope": 3401, - "src": "2455:128:22", + "scope": 3532, + "src": "1314:136:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3399, + "id": 3530, "nodeType": "Block", - "src": "2641:84:22", + "src": "1516:84:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3392, + "id": 3523, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "2670:7:22", + "referencedDeclaration": 3517, + "src": "1545:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1305,33 +1272,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3389, + "id": 3520, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2651:11:22", + "referencedDeclaration": 3433, + "src": "1526:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3391, + "id": 3522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2651:18:22", + "referencedDeclaration": 3591, + "src": "1526:18:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3393, + "id": 3524, "isConstant": false, "isLValue": false, "isPure": false, @@ -1339,28 +1305,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2651:27:22", + "src": "1526:27:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3394, + "id": 3525, "nodeType": "ExpressionStatement", - "src": "2651:27:22" + "src": "1526:27:22" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3396, + "id": 3527, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "2710:7:22", + "referencedDeclaration": 3517, + "src": "1585:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1374,18 +1339,18 @@ "typeString": "address" } ], - "id": 3395, + "id": 3526, "name": "OrganizerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2693:16:22", + "referencedDeclaration": 3431, + "src": "1568:16:22", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3397, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": false, @@ -1393,36 +1358,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2693:25:22", + "src": "1568:25:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3398, + "id": 3529, "nodeType": "EmitStatement", - "src": "2688:30:22" + "src": "1563:30:22" } ] }, - "documentation": null, - "id": 3400, + "id": 3531, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3387, + "id": 3518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3517, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3400, - "src": "2615:15:22", + "scope": 3531, + "src": "1482:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1430,124 +1396,129 @@ "typeString": "address" }, "typeName": { - "id": 3385, + "id": 3516, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2615:7:22", + "src": "1482:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2614:17:22" + "src": "1481:17:22" }, "returnParameters": { - "id": 3388, + "id": 3519, "nodeType": "ParameterList", "parameters": [], - "src": "2641:0:22" + "src": "1516:0:22" }, - "scope": 3401, - "src": "2589:136:22", + "scope": 3532, + "src": "1456:144:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3402, - "src": "1620:1107:22" + "scope": 3533, + "src": "479:1123:22" } ], - "src": "1285:1443:22" + "src": "173:1430:22" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "exportedSymbols": { - "OrganizerRole": [3401] + "OrganizerRole": [3532], + "Roles": [3618] }, - "id": 3402, + "id": 3533, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3289, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3418, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1285:23:22" + "src": "173:31:22" }, { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", - "file": "openzeppelin-solidity/contracts/access/Roles.sol", - "id": 3290, + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", + "file": "./Roles.sol", + "id": 3419, "nodeType": "ImportDirective", - "scope": 3402, - "sourceUnit": 4083, - "src": "1310:58:22", + "scope": 3533, + "sourceUnit": 3619, + "src": "206:21:22", "symbolAliases": [], "unitAlias": "" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@notice Implements a access control for a Organizer role,\nwhich will be responsible for managing hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info.", + "documentation": { + "id": 3420, + "nodeType": "StructuredDocumentation", + "src": "229:249:22", + "text": "@notice Implements a access control for a Organizer role,\nwhich will be responsible for managing hackathons/contests.\n@dev not detailed documentation, since its based on OpenZeppelin.\nTake a look at the repo for further info." + }, "fullyImplemented": true, - "id": 3401, - "linearizedBaseContracts": [3401], + "id": 3532, + "linearizedBaseContracts": [3532], "name": "OrganizerRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3293, + "id": 3423, "libraryName": { - "contractScope": null, - "id": 3291, + "id": 3421, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4082, - "src": "1655:5:22", + "referencedDeclaration": 3618, + "src": "523:5:22", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$4082", + "typeIdentifier": "t_contract$_Roles_$3618", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "1649:27:22", + "src": "517:27:22", "typeName": { - "contractScope": null, - "id": 3292, + "id": 3422, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1665:10:22", + "referencedDeclaration": 3540, + "src": "533:10:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, - "documentation": null, - "id": 3297, + "id": 3427, "name": "OrganizerAdded", "nodeType": "EventDefinition", "parameters": { - "id": 3296, + "id": 3426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3295, + "id": 3425, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "1703:23:22", + "scope": 3427, + "src": "571:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1555,42 +1526,41 @@ "typeString": "address" }, "typeName": { - "id": 3294, + "id": 3424, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1703:7:22", + "src": "571:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1702:25:22" + "src": "570:25:22" }, - "src": "1682:46:22" + "src": "550:46:22" }, { "anonymous": false, - "documentation": null, - "id": 3301, + "id": 3431, "name": "OrganizerRemoved", "nodeType": "EventDefinition", "parameters": { - "id": 3300, + "id": 3430, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3299, + "id": 3429, "indexed": true, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3301, - "src": "1756:23:22", + "scope": 3431, + "src": "624:23:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1598,81 +1568,76 @@ "typeString": "address" }, "typeName": { - "id": 3298, + "id": 3428, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1756:7:22", + "src": "624:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1755:25:22" + "src": "623:25:22" }, - "src": "1733:48:22" + "src": "601:48:22" }, { "constant": false, - "id": 3303, + "id": 3433, + "mutability": "mutable", "name": "_organizers", "nodeType": "VariableDeclaration", - "scope": 3401, - "src": "1787:30:22", + "scope": 3532, + "src": "655:30:22", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 3302, + "id": 3432, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "1787:10:22", + "referencedDeclaration": 3540, + "src": "655:10:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 3321, + "id": 3452, "nodeType": "Block", - "src": "1871:121:22", + "src": "730:121:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3313, + "id": 3444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 3309, + "id": 3439, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3305, - "src": "1889:16:22", + "referencedDeclaration": 3435, + "src": "748:16:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1681,20 +1646,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 3311, + "id": 3442, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1917:1:22", - "subdenomination": null, + "src": "776:1:22", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1709,20 +1671,26 @@ "typeString": "int_const 0" } ], - "id": 3310, + "id": 3441, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1909:7:22", + "src": "768:7:22", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "768:7:22", + "typeDescriptions": {} + } }, - "id": 3312, + "id": 3443, "isConstant": false, "isLValue": false, "isPure": true, @@ -1730,30 +1698,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1909:10:22", + "src": "768:10:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "1889:30:22", + "src": "748:30:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "496e76616c6964207a65726f2061646472657373", - "id": 3314, + "id": 3445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1921:22:22", - "subdenomination": null, + "src": "780:22:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_4ff7cda39684c4fc70305248b0bb03dec7a83a7c720aedf63600d835df66b7c7", "typeString": "literal_string \"Invalid zero address\"" @@ -1772,18 +1739,18 @@ "typeString": "literal_string \"Invalid zero address\"" } ], - "id": 3308, + "id": 3438, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1881:7:22", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "740:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3315, + "id": 3446, "isConstant": false, "isLValue": false, "isPure": false, @@ -1791,28 +1758,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1881:63:22", + "src": "740:63:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3316, + "id": 3447, "nodeType": "ExpressionStatement", - "src": "1881:63:22" + "src": "740:63:22" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3318, + "id": 3449, "name": "initialOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3305, - "src": "1968:16:22", + "referencedDeclaration": 3435, + "src": "827:16:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1826,18 +1792,18 @@ "typeString": "address" } ], - "id": 3317, + "id": 3448, "name": "_addOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "1954:13:22", + "referencedDeclaration": 3515, + "src": "813:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3319, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -1845,36 +1811,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1954:31:22", + "src": "813:31:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3320, + "id": 3451, "nodeType": "ExpressionStatement", - "src": "1954:31:22" + "src": "813:31:22" } ] }, - "documentation": null, - "id": 3322, + "id": 3453, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 3306, + "id": 3436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3305, + "id": 3435, + "mutability": "mutable", "name": "initialOrganizer", "nodeType": "VariableDeclaration", - "scope": 3322, - "src": "1836:24:22", + "scope": 3453, + "src": "704:24:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1882,71 +1849,65 @@ "typeString": "address" }, "typeName": { - "id": 3304, + "id": 3434, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1836:7:22", + "src": "704:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1835:26:22" + "src": "703:26:22" }, "returnParameters": { - "id": 3307, + "id": 3437, "nodeType": "ParameterList", "parameters": [], - "src": "1871:0:22" + "src": "730:0:22" }, - "scope": 3401, - "src": "1824:168:22", + "scope": 3532, + "src": "692:159:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3333, + "id": 3464, "nodeType": "Block", - "src": "2023:115:22", + "src": "882:115:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3326, + "id": 3457, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2053:3:22", + "referencedDeclaration": 4294967281, + "src": "912:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3327, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2053:10:22", + "src": "912:10:22", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1960,18 +1921,18 @@ "typeString": "address payable" } ], - "id": 3325, + "id": 3456, "name": "isOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "2041:11:22", + "referencedDeclaration": 3478, + "src": "900:11:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 3328, + "id": 3459, "isConstant": false, "isLValue": false, "isPure": false, @@ -1979,24 +1940,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2041:23:22", + "src": "900:23:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e", - "id": 3329, + "id": 3460, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2066:53:22", - "subdenomination": null, + "src": "925:53:22", "typeDescriptions": { "typeIdentifier": "t_stringliteral_477386f0904873d9bdc213d9a80eb43fff1cfdad1f5295ccfa2b7fca36545b5d", "typeString": "literal_string \"OrganizerRole: caller does not have Organizer Role.\"" @@ -2015,18 +1975,18 @@ "typeString": "literal_string \"OrganizerRole: caller does not have Organizer Role.\"" } ], - "id": 3324, + "id": 3455, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2033:7:22", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "892:7:22", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3330, + "id": 3461, "isConstant": false, "isLValue": false, "isPure": false, @@ -2034,54 +1994,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:87:22", + "src": "892:87:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3331, + "id": 3462, "nodeType": "ExpressionStatement", - "src": "2033:87:22" + "src": "892:87:22" }, { - "id": 3332, + "id": 3463, "nodeType": "PlaceholderStatement", - "src": "2130:1:22" + "src": "989:1:22" } ] }, - "documentation": null, - "id": 3334, + "id": 3465, "name": "onlyOrganizer", "nodeType": "ModifierDefinition", "parameters": { - "id": 3323, + "id": 3454, "nodeType": "ParameterList", "parameters": [], - "src": "2020:2:22" + "src": "879:2:22" }, - "src": "1998:140:22", + "src": "857:140:22", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 3346, + "id": 3477, "nodeType": "Block", - "src": "2209:48:22", + "src": "1068:48:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3343, + "id": 3474, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "2242:7:22", + "referencedDeclaration": 3467, + "src": "1101:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2096,33 +2055,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3341, + "id": 3472, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2226:11:22", + "referencedDeclaration": 3433, + "src": "1085:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3342, + "id": 3473, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 4081, - "src": "2226:15:22", + "referencedDeclaration": 3617, + "src": "1085:15:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 3344, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,37 +2088,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:24:22", + "src": "1085:24:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3340, - "id": 3345, + "functionReturnParameters": 3471, + "id": 3476, "nodeType": "Return", - "src": "2219:31:22" + "src": "1078:31:22" } ] }, - "documentation": null, - "id": 3347, + "functionSelector": "41676f15", + "id": 3478, "implemented": true, "kind": "function", "modifiers": [], "name": "isOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3337, + "id": 3468, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3336, + "id": 3467, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "2165:15:22", + "scope": 3478, + "src": "1024:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2168,33 +2128,33 @@ "typeString": "address" }, "typeName": { - "id": 3335, + "id": 3466, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2165:7:22", + "src": "1024:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2164:17:22" + "src": "1023:17:22" }, "returnParameters": { - "id": 3340, + "id": 3471, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3339, + "id": 3470, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "2203:4:22", + "scope": 3478, + "src": "1062:4:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2202,45 +2162,42 @@ "typeString": "bool" }, "typeName": { - "id": 3338, + "id": 3469, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2203:4:22", + "src": "1062:4:22", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "2202:6:22" + "src": "1061:6:22" }, - "scope": 3401, - "src": "2144:113:22", + "scope": 3532, + "src": "1003:113:22", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3358, + "id": 3489, "nodeType": "Block", - "src": "2323:39:22", + "src": "1182:39:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3355, + "id": 3486, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3349, - "src": "2347:7:22", + "referencedDeclaration": 3480, + "src": "1206:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2254,18 +2211,18 @@ "typeString": "address" } ], - "id": 3354, + "id": 3485, "name": "_addOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "2333:13:22", + "referencedDeclaration": 3515, + "src": "1192:13:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3356, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, @@ -2273,56 +2230,56 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2333:22:22", + "src": "1192:22:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3357, + "id": 3488, "nodeType": "ExpressionStatement", - "src": "2333:22:22" + "src": "1192:22:22" } ] }, - "documentation": null, - "id": 3359, + "functionSelector": "e4725f02", + "id": 3490, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 3352, + "id": 3483, "modifierName": { - "argumentTypes": null, - "id": 3351, + "id": 3482, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "2309:13:22", + "referencedDeclaration": 3465, + "src": "1168:13:22", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2309:13:22" + "src": "1168:13:22" } ], "name": "addOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3350, + "id": 3481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3349, + "id": 3480, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3359, - "src": "2285:15:22", + "scope": 3490, + "src": "1144:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2330,68 +2287,63 @@ "typeString": "address" }, "typeName": { - "id": 3348, + "id": 3479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2285:7:22", + "src": "1144:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2284:17:22" + "src": "1143:17:22" }, "returnParameters": { - "id": 3353, + "id": 3484, "nodeType": "ParameterList", "parameters": [], - "src": "2323:0:22" + "src": "1182:0:22" }, - "scope": 3401, - "src": "2263:99:22", + "scope": 3532, + "src": "1122:99:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3367, + "id": 3498, "nodeType": "Block", - "src": "2404:45:22", + "src": "1263:45:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 3363, + "id": 3494, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2431:3:22", + "referencedDeclaration": 4294967281, + "src": "1290:3:22", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3364, + "id": 3495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2431:10:22", + "src": "1290:10:22", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2405,18 +2357,18 @@ "typeString": "address payable" } ], - "id": 3362, + "id": 3493, "name": "_removeOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3400, - "src": "2414:16:22", + "referencedDeclaration": 3531, + "src": "1273:16:22", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3365, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, @@ -2424,61 +2376,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2414:28:22", + "src": "1273:28:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3366, + "id": 3497, "nodeType": "ExpressionStatement", - "src": "2414:28:22" + "src": "1273:28:22" } ] }, - "documentation": null, - "id": 3368, + "functionSelector": "567ad862", + "id": 3499, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3360, + "id": 3491, "nodeType": "ParameterList", "parameters": [], - "src": "2394:2:22" + "src": "1253:2:22" }, "returnParameters": { - "id": 3361, + "id": 3492, "nodeType": "ParameterList", "parameters": [], - "src": "2404:0:22" + "src": "1263:0:22" }, - "scope": 3401, - "src": "2368:81:22", + "scope": 3532, + "src": "1227:81:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 3383, + "id": 3514, "nodeType": "Block", - "src": "2504:79:22", + "src": "1371:79:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3376, + "id": 3507, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2530:7:22", + "referencedDeclaration": 3501, + "src": "1397:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2493,33 +2444,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3373, + "id": 3504, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2514:11:22", + "referencedDeclaration": 3433, + "src": "1381:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3375, + "id": 3506, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 4033, - "src": "2514:15:22", + "referencedDeclaration": 3566, + "src": "1381:15:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3377, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": false, @@ -2527,28 +2477,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2514:24:22", + "src": "1381:24:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3378, + "id": 3509, "nodeType": "ExpressionStatement", - "src": "2514:24:22" + "src": "1381:24:22" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3380, + "id": 3511, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2568:7:22", + "referencedDeclaration": 3501, + "src": "1435:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2562,18 +2511,18 @@ "typeString": "address" } ], - "id": 3379, + "id": 3510, "name": "OrganizerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "2553:14:22", + "referencedDeclaration": 3427, + "src": "1420:14:22", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3381, + "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, @@ -2581,36 +2530,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2553:23:22", + "src": "1420:23:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3382, + "id": 3513, "nodeType": "EmitStatement", - "src": "2548:28:22" + "src": "1415:28:22" } ] }, - "documentation": null, - "id": 3384, + "id": 3515, "implemented": true, "kind": "function", "modifiers": [], "name": "_addOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3371, + "id": 3502, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3370, + "id": 3501, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3384, - "src": "2478:15:22", + "scope": 3515, + "src": "1337:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2618,52 +2568,49 @@ "typeString": "address" }, "typeName": { - "id": 3369, + "id": 3500, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2478:7:22", + "src": "1337:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2477:17:22" + "src": "1336:17:22" }, "returnParameters": { - "id": 3372, + "id": 3503, "nodeType": "ParameterList", "parameters": [], - "src": "2504:0:22" + "src": "1371:0:22" }, - "scope": 3401, - "src": "2455:128:22", + "scope": 3532, + "src": "1314:136:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 3399, + "id": 3530, "nodeType": "Block", - "src": "2641:84:22", + "src": "1516:84:22", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3392, + "id": 3523, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "2670:7:22", + "referencedDeclaration": 3517, + "src": "1545:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2678,33 +2625,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 3389, + "id": 3520, "name": "_organizers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "2651:11:22", + "referencedDeclaration": 3433, + "src": "1526:11:22", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage", + "typeIdentifier": "t_struct$_Role_$3540_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 3391, + "id": 3522, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 4057, - "src": "2651:18:22", + "referencedDeclaration": 3591, + "src": "1526:18:22", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$4008_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$3540_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 3393, + "id": 3524, "isConstant": false, "isLValue": false, "isPure": false, @@ -2712,28 +2658,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2651:27:22", + "src": "1526:27:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3394, + "id": 3525, "nodeType": "ExpressionStatement", - "src": "2651:27:22" + "src": "1526:27:22" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 3396, + "id": 3527, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "2710:7:22", + "referencedDeclaration": 3517, + "src": "1585:7:22", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2747,18 +2692,18 @@ "typeString": "address" } ], - "id": 3395, + "id": 3526, "name": "OrganizerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2693:16:22", + "referencedDeclaration": 3431, + "src": "1568:16:22", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 3397, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": false, @@ -2766,36 +2711,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2693:25:22", + "src": "1568:25:22", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3398, + "id": 3529, "nodeType": "EmitStatement", - "src": "2688:30:22" + "src": "1563:30:22" } ] }, - "documentation": null, - "id": 3400, + "id": 3531, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3387, + "id": 3518, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3386, + "id": 3517, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 3400, - "src": "2615:15:22", + "scope": 3531, + "src": "1482:15:22", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2803,54 +2749,57 @@ "typeString": "address" }, "typeName": { - "id": 3385, + "id": 3516, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2615:7:22", + "src": "1482:7:22", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "2614:17:22" + "src": "1481:17:22" }, "returnParameters": { - "id": 3388, + "id": 3519, "nodeType": "ParameterList", "parameters": [], - "src": "2641:0:22" + "src": "1516:0:22" }, - "scope": 3401, - "src": "2589:136:22", + "scope": 3532, + "src": "1456:144:22", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" } ], - "scope": 3402, - "src": "1620:1107:22" + "scope": 3533, + "src": "479:1123:22" } ], - "src": "1285:1443:22" + "src": "173:1430:22" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.533Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.138Z", "devdoc": { "details": "not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info.", - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { + "kind": "user", "methods": {}, - "notice": "Implements a access control for a Organizer role, which will be responsible for managing hackathons/contests." + "notice": "Implements a access control for a Organizer role, which will be responsible for managing hackathons/contests.", + "version": 1 } } diff --git a/build/contracts/OrganizerRoleMock.json b/build/contracts/OrganizerRoleMock.json index 36c0d7f..c47bda3 100644 --- a/build/contracts/OrganizerRoleMock.json +++ b/build/contracts/OrganizerRoleMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -34,7 +33,6 @@ "type": "event" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -44,12 +42,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -65,21 +61,17 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -89,182 +81,176 @@ ], "name": "removeOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [], "name": "onlyOrganizerMock", "outputs": [], - "payable": false, "stateMutability": "view", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"onlyOrganizerMock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol\":\"OrganizerRoleMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol\":{\"keccak256\":\"0x6fb0819aa964e85b8a82bc746a574b33491616187a3bebeae5605f5a2d266d78\",\"urls\":[\"bzz-raw://3cd4eba9d50dcd27b37157647b3d9b1fe3802bd4d4d057464c54c3d6ac9cb1f5\",\"dweb:/ipfs/QmfT31tnH4rBFSErHUy3kkuNa8RaXg3JGcYkahwCz2HYE5\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50338061007e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b610090816001600160e01b0361009616565b5061020a565b6100ae8160006100e560201b6102b41790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6100f882826001600160e01b0361018916565b1561016457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806106606022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610447806102196000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806341676f151461005c57806344ade56d14610096578063478370df146100be578063567ad862146100c6578063e4725f02146100ce575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b031661010c565b005b6100bc610118565b6100bc61015e565b6100bc600480360360208110156100e457600080fd5b50356001600160a01b0316610167565b6000610106818363ffffffff6101b416565b92915050565b6101158161021b565b50565b610121336100f4565b61015c5760405162461bcd60e51b815260040180806020018281038252603381526020018061039d6033913960400191505060405180910390fd5b565b61015c3361021b565b610170336100f4565b6101ab5760405162461bcd60e51b815260040180806020018281038252603381526020018061039d6033913960400191505060405180910390fd5b61011581610224565b60006001600160a01b0382166101fb5760405162461bcd60e51b81526004018080602001828103825260228152602001806103f16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6101158161026c565b61023560008263ffffffff6102b416565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61027d60008263ffffffff61033516565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6102be82826101b4565b15610310576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61033f82826101b4565b61037a5760405162461bcd60e51b81526004018080602001828103825260218152602001806103d06021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158204cd5c7f9a1be36a2ee47d4db33c0644ad0f13f97ddfce5a4a2526a416fc6029664736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806341676f151461005c57806344ade56d14610096578063478370df146100be578063567ad862146100c6578063e4725f02146100ce575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b031661010c565b005b6100bc610118565b6100bc61015e565b6100bc600480360360208110156100e457600080fd5b50356001600160a01b0316610167565b6000610106818363ffffffff6101b416565b92915050565b6101158161021b565b50565b610121336100f4565b61015c5760405162461bcd60e51b815260040180806020018281038252603381526020018061039d6033913960400191505060405180910390fd5b565b61015c3361021b565b610170336100f4565b6101ab5760405162461bcd60e51b815260040180806020018281038252603381526020018061039d6033913960400191505060405180910390fd5b61011581610224565b60006001600160a01b0382166101fb5760405162461bcd60e51b81526004018080602001828103825260228152602001806103f16022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6101158161026c565b61023560008263ffffffff6102b416565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61027d60008263ffffffff61033516565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b6102be82826101b4565b15610310576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61033f82826101b4565b61037a5760405162461bcd60e51b81526004018080602001828103825260218152602001806103d06021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158204cd5c7f9a1be36a2ee47d4db33c0644ad0f13f97ddfce5a4a2526a416fc6029664736f6c634300050c0032", - "sourceMap": "1345:505:15:-;;;1395:49;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1430:10:15;1889:30:22;1881:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:31;1968:16;-1:-1:-1;;;;;1954:13:22;:31;:::i;:::-;1824:168;1345:505:15;;2455:128:22;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1345:505:15:-;;;;;;;", - "deployedSourceMap": "1345:505:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1345:505:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2144:113:22;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1450:91:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1450:91:15;-1:-1:-1;;;;;1450:91:15;;:::i;:::-;;1547:119;;;:::i;2368:81:22:-;;;:::i;2263:99::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;2144:113::-;2203:4;2226:24;2203:4;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;2144:113;-1:-1:-1;;2144:113:22:o;1450:91:15:-;1509:25;1526:7;1509:16;:25::i;:::-;1450:91;:::o;1547:119::-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:119:15:o;2368:81:22:-;2414:28;2431:10;2414:16;:28::i;2263:99::-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;1748:100:15:-;1810:31;1833:7;1810:22;:31::i;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;2589:136::-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;510:180::-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o", - "source": "// The MIT License(MIT)\n\n// Copyright(c) 2016 - 2019 zOS Global Limited\n\n// Permission is hereby granted, free of charge, to any person obtaining\n// a copy of this software and associated documentation files(the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to\n// the following conditions:\n\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity ^0.5.0;\n\nimport \"../roles/OrganizerRole.sol\";\n\ncontract OrganizerRoleMock is OrganizerRole {\n constructor() public OrganizerRole(msg.sender) {}\n\n function removeOrganizer(address account) public {\n _removeOrganizer(account);\n }\n\n function onlyOrganizerMock() public view onlyOrganizer {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeOrganizer is not internal\n function _removeOrganizer(address account) internal {\n super._removeOrganizer(account);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyOrganizerMock\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"removeOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol\":\"OrganizerRoleMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol\":{\"keccak256\":\"0x3e4ad341206df85e1944fddc18a961c6d839b81ca27a26621e2bdb02d66e2d68\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d6e2fbd6c6982b4ab3ee096b9d2cbe6557cac08a735f7ebc3868be03262c1100\",\"dweb:/ipfs/QmSRbwzcvkfNv69nwo4JLLRUqzEQzb5jvL3891TozCFsCj\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b503380610064576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b61006d81610073565b506101aa565b61008b8160006100c260201b6101ae1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6100cc8282610143565b1561011e576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b03821661018a5760405162461bcd60e51b81526004018080602001828103825260228152602001806105ef6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610436806101b96000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806341676f151461005c57806344ade56d14610096578063478370df146100be578063567ad862146100c6578063e4725f02146100ce575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b0316610106565b005b6100bc610112565b6100bc610158565b6100bc600480360360208110156100e457600080fd5b50356001600160a01b0316610161565b6000610100818361022f565b92915050565b61010f81610296565b50565b61011b336100f4565b6101565760405162461bcd60e51b815260040180806020018281038252603381526020018061038b6033913960400191505060405180910390fd5b565b61015633610296565b61016a336100f4565b6101a55760405162461bcd60e51b815260040180806020018281038252603381526020018061038b6033913960400191505060405180910390fd5b61010f8161029f565b6101b8828261022f565b1561020a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166102765760405162461bcd60e51b81526004018080602001828103825260228152602001806103df6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61010f816102e1565b6102aa6000826101ae565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6102ec600082610323565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61032d828261022f565b6103685760405162461bcd60e51b81526004018080602001828103825260218152602001806103be6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212201c516e20a23980e7f69851cbebe895d0287e20457ddb8dd1b4af180d8c88781064736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806341676f151461005c57806344ade56d14610096578063478370df146100be578063567ad862146100c6578063e4725f02146100ce575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b03166100f4565b604080519115158252519081900360200190f35b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b0316610106565b005b6100bc610112565b6100bc610158565b6100bc600480360360208110156100e457600080fd5b50356001600160a01b0316610161565b6000610100818361022f565b92915050565b61010f81610296565b50565b61011b336100f4565b6101565760405162461bcd60e51b815260040180806020018281038252603381526020018061038b6033913960400191505060405180910390fd5b565b61015633610296565b61016a336100f4565b6101a55760405162461bcd60e51b815260040180806020018281038252603381526020018061038b6033913960400191505060405180910390fd5b61010f8161029f565b6101b8828261022f565b1561020a576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166102765760405162461bcd60e51b81526004018080602001828103825260228152602001806103df6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61010f816102e1565b6102aa6000826101ae565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6102ec600082610323565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61032d828261022f565b6103685760405162461bcd60e51b81526004018080602001828103825260218152602001806103be6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff1916905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212201c516e20a23980e7f69851cbebe895d0287e20457ddb8dd1b4af180d8c88781064736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "241:507:15:-:0;;;291:42;;;;;;;;;-1:-1:-1;319:10:15;748:30:22;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;692:159;241:507:15;;1314:136:22;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;241:507:15:-;;;;;;;", + "deployedSourceMap": "241:507:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:113:22;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;339:91:15;;;;;;;;;;;;;;;;-1:-1:-1;339:91:15;-1:-1:-1;;;;;339:91:15;;:::i;:::-;;436:119;;;:::i;1227:81:22:-;;;:::i;1122:99::-;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;1003:113::-;1062:4;1085:24;1062:4;1101:7;1085:15;:24::i;:::-;1078:31;1003:113;-1:-1:-1;;1003:113:22:o;339:91:15:-;398:25;415:7;398:16;:25::i;:::-;339:91;:::o;436:119::-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;436:119:15:o;1227:81:22:-;1273:28;1290:10;1273:16;:28::i;1122:99::-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;423:175:23:-:0;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;637:109:15:-;708:31;731:7;708:22;:31::i;1314:136:22:-;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;1456:144::-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\n// Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../roles/OrganizerRole.sol\";\n\ncontract OrganizerRoleMock is OrganizerRole {\n constructor() OrganizerRole(msg.sender) {}\n\n function removeOrganizer(address account) public {\n _removeOrganizer(account);\n }\n\n function onlyOrganizerMock() public view onlyOrganizer {\n // solhint-disable-previous-line no-empty-blocks\n }\n\n // Causes a compilation error if super._removeOrganizer is not internal\n function _removeOrganizer(address account) internal override {\n super._removeOrganizer(account);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol", "exportedSymbols": { - "OrganizerRoleMock": [2810] + "OrganizerRole": [3532], + "OrganizerRoleMock": [2924], + "Roles": [3618] }, - "id": 2811, + "id": 2925, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2770, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2883, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:15" + "src": "170:31:15" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 2771, + "id": 2884, "nodeType": "ImportDirective", - "scope": 2811, - "sourceUnit": 3402, - "src": "1307:36:15", + "scope": 2925, + "sourceUnit": 3533, + "src": "203:36:15", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2772, + "id": 2885, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "1375:13:15", + "referencedDeclaration": 3532, + "src": "271:13:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 2773, + "id": 2886, "nodeType": "InheritanceSpecifier", - "src": "1375:13:15" + "src": "271:13:15" } ], - "contractDependencies": [3401], + "contractDependencies": [3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2810, - "linearizedBaseContracts": [2810, 3401], + "id": 2924, + "linearizedBaseContracts": [2924, 3532], "name": "OrganizerRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2780, + "id": 2893, "nodeType": "Block", - "src": "1442:2:15", + "src": "331:2:15", "statements": [] }, - "documentation": null, - "id": 2781, + "id": 2894, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2776, + "id": 2889, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1430:3:15", + "referencedDeclaration": 4294967281, + "src": "319:3:15", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2777, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1430:10:15", + "src": "319:10:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2778, + "id": 2891, "modifierName": { - "argumentTypes": null, - "id": 2775, + "id": 2888, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "1416:13:15", + "referencedDeclaration": 3532, + "src": "305:13:15", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "1416:25:15" + "src": "305:25:15" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2774, + "id": 2887, "nodeType": "ParameterList", "parameters": [], - "src": "1406:2:15" + "src": "302:2:15" }, "returnParameters": { - "id": 2779, + "id": 2892, "nodeType": "ParameterList", "parameters": [], - "src": "1442:0:15" + "src": "331:0:15" }, - "scope": 2810, - "src": "1395:49:15", + "scope": 2924, + "src": "291:42:15", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2790, + "id": 2903, "nodeType": "Block", - "src": "1499:42:15", + "src": "388:42:15", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2787, + "id": 2900, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "1526:7:15", + "referencedDeclaration": 2896, + "src": "415:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -278,18 +264,18 @@ "typeString": "address" } ], - "id": 2786, + "id": 2899, "name": "_removeOrganizer", "nodeType": "Identifier", - "overloadedDeclarations": [2809], - "referencedDeclaration": 2809, - "src": "1509:16:15", + "overloadedDeclarations": [2923], + "referencedDeclaration": 2923, + "src": "398:16:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2788, + "id": 2901, "isConstant": false, "isLValue": false, "isPure": false, @@ -297,36 +283,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1509:25:15", + "src": "398:25:15", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2789, + "id": 2902, "nodeType": "ExpressionStatement", - "src": "1509:25:15" + "src": "398:25:15" } ] }, - "documentation": null, - "id": 2791, + "functionSelector": "44ade56d", + "id": 2904, "implemented": true, "kind": "function", "modifiers": [], "name": "removeOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2784, + "id": 2897, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2783, + "id": 2896, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2791, - "src": "1475:15:15", + "scope": 2904, + "src": "364:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -334,104 +322,100 @@ "typeString": "address" }, "typeName": { - "id": 2782, + "id": 2895, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1475:7:15", + "src": "364:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1474:17:15" + "src": "363:17:15" }, "returnParameters": { - "id": 2785, + "id": 2898, "nodeType": "ParameterList", "parameters": [], - "src": "1499:0:15" + "src": "388:0:15" }, - "scope": 2810, - "src": "1450:91:15", + "scope": 2924, + "src": "339:91:15", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2796, + "id": 2909, "nodeType": "Block", - "src": "1602:64:15", + "src": "491:64:15", "statements": [] }, - "documentation": null, - "id": 2797, + "functionSelector": "478370df", + "id": 2910, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2794, + "id": 2907, "modifierName": { - "argumentTypes": null, - "id": 2793, + "id": 2906, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1588:13:15", + "referencedDeclaration": 3465, + "src": "477:13:15", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1588:13:15" + "src": "477:13:15" } ], "name": "onlyOrganizerMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2792, + "id": 2905, "nodeType": "ParameterList", "parameters": [], - "src": "1573:2:15" + "src": "462:2:15" }, "returnParameters": { - "id": 2795, + "id": 2908, "nodeType": "ParameterList", "parameters": [], - "src": "1602:0:15" + "src": "491:0:15" }, - "scope": 2810, - "src": "1547:119:15", + "scope": 2924, + "src": "436:119:15", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3531], "body": { - "id": 2808, + "id": 2922, "nodeType": "Block", - "src": "1800:48:15", + "src": "698:48:15", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2805, + "id": 2919, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1833:7:15", + "referencedDeclaration": 2912, + "src": "731:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -446,33 +430,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2802, + "id": 2916, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4291, - "src": "1810:5:15", + "referencedDeclaration": 4294967271, + "src": "708:5:15", "typeDescriptions": { - "typeIdentifier": "t_super$_OrganizerRoleMock_$2810", + "typeIdentifier": "t_super$_OrganizerRoleMock_$2924", "typeString": "contract super OrganizerRoleMock" } }, - "id": 2804, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3400, - "src": "1810:22:15", + "referencedDeclaration": 3531, + "src": "708:22:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2806, + "id": 2920, "isConstant": false, "isLValue": false, "isPure": false, @@ -480,36 +463,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1810:31:15", + "src": "708:31:15", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2807, + "id": 2921, "nodeType": "ExpressionStatement", - "src": "1810:31:15" + "src": "708:31:15" } ] }, - "documentation": null, - "id": 2809, + "id": 2923, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2914, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "689:8:15" + }, "parameters": { - "id": 2800, + "id": 2913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2799, + "id": 2912, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2809, - "src": "1774:15:15", + "scope": 2923, + "src": "663:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -517,196 +507,189 @@ "typeString": "address" }, "typeName": { - "id": 2798, + "id": 2911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1774:7:15", + "src": "663:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1773:17:15" + "src": "662:17:15" }, "returnParameters": { - "id": 2801, + "id": 2915, "nodeType": "ParameterList", "parameters": [], - "src": "1800:0:15" + "src": "698:0:15" }, - "scope": 2810, - "src": "1748:100:15", + "scope": 2924, + "src": "637:109:15", "stateMutability": "nonpayable", - "superFunction": 3400, + "virtual": false, "visibility": "internal" } ], - "scope": 2811, - "src": "1345:505:15" + "scope": 2925, + "src": "241:507:15" } ], - "src": "1282:569:15" + "src": "170:579:15" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/OrganizerRoleMock.sol", "exportedSymbols": { - "OrganizerRoleMock": [2810] + "OrganizerRole": [3532], + "OrganizerRoleMock": [2924], + "Roles": [3618] }, - "id": 2811, + "id": 2925, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2770, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2883, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "1282:23:15" + "src": "170:31:15" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 2771, + "id": 2884, "nodeType": "ImportDirective", - "scope": 2811, - "sourceUnit": 3402, - "src": "1307:36:15", + "scope": 2925, + "sourceUnit": 3533, + "src": "203:36:15", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2772, + "id": 2885, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "1375:13:15", + "referencedDeclaration": 3532, + "src": "271:13:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 2773, + "id": 2886, "nodeType": "InheritanceSpecifier", - "src": "1375:13:15" + "src": "271:13:15" } ], - "contractDependencies": [3401], + "contractDependencies": [3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2810, - "linearizedBaseContracts": [2810, 3401], + "id": 2924, + "linearizedBaseContracts": [2924, 3532], "name": "OrganizerRoleMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2780, + "id": 2893, "nodeType": "Block", - "src": "1442:2:15", + "src": "331:2:15", "statements": [] }, - "documentation": null, - "id": 2781, + "id": 2894, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2776, + "id": 2889, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "1430:3:15", + "referencedDeclaration": 4294967281, + "src": "319:3:15", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2777, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1430:10:15", + "src": "319:10:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2778, + "id": 2891, "modifierName": { - "argumentTypes": null, - "id": 2775, + "id": 2888, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "1416:13:15", + "referencedDeclaration": 3532, + "src": "305:13:15", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "1416:25:15" + "src": "305:25:15" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2774, + "id": 2887, "nodeType": "ParameterList", "parameters": [], - "src": "1406:2:15" + "src": "302:2:15" }, "returnParameters": { - "id": 2779, + "id": 2892, "nodeType": "ParameterList", "parameters": [], - "src": "1442:0:15" + "src": "331:0:15" }, - "scope": 2810, - "src": "1395:49:15", + "scope": 2924, + "src": "291:42:15", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2790, + "id": 2903, "nodeType": "Block", - "src": "1499:42:15", + "src": "388:42:15", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2787, + "id": 2900, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "1526:7:15", + "referencedDeclaration": 2896, + "src": "415:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -720,18 +703,18 @@ "typeString": "address" } ], - "id": 2786, + "id": 2899, "name": "_removeOrganizer", "nodeType": "Identifier", - "overloadedDeclarations": [2809], - "referencedDeclaration": 2809, - "src": "1509:16:15", + "overloadedDeclarations": [2923], + "referencedDeclaration": 2923, + "src": "398:16:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2788, + "id": 2901, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,36 +722,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1509:25:15", + "src": "398:25:15", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2789, + "id": 2902, "nodeType": "ExpressionStatement", - "src": "1509:25:15" + "src": "398:25:15" } ] }, - "documentation": null, - "id": 2791, + "functionSelector": "44ade56d", + "id": 2904, "implemented": true, "kind": "function", "modifiers": [], "name": "removeOrganizer", "nodeType": "FunctionDefinition", "parameters": { - "id": 2784, + "id": 2897, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2783, + "id": 2896, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2791, - "src": "1475:15:15", + "scope": 2904, + "src": "364:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -776,104 +761,100 @@ "typeString": "address" }, "typeName": { - "id": 2782, + "id": 2895, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1475:7:15", + "src": "364:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1474:17:15" + "src": "363:17:15" }, "returnParameters": { - "id": 2785, + "id": 2898, "nodeType": "ParameterList", "parameters": [], - "src": "1499:0:15" + "src": "388:0:15" }, - "scope": 2810, - "src": "1450:91:15", + "scope": 2924, + "src": "339:91:15", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2796, + "id": 2909, "nodeType": "Block", - "src": "1602:64:15", + "src": "491:64:15", "statements": [] }, - "documentation": null, - "id": 2797, + "functionSelector": "478370df", + "id": 2910, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2794, + "id": 2907, "modifierName": { - "argumentTypes": null, - "id": 2793, + "id": 2906, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "1588:13:15", + "referencedDeclaration": 3465, + "src": "477:13:15", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1588:13:15" + "src": "477:13:15" } ], "name": "onlyOrganizerMock", "nodeType": "FunctionDefinition", "parameters": { - "id": 2792, + "id": 2905, "nodeType": "ParameterList", "parameters": [], - "src": "1573:2:15" + "src": "462:2:15" }, "returnParameters": { - "id": 2795, + "id": 2908, "nodeType": "ParameterList", "parameters": [], - "src": "1602:0:15" + "src": "491:0:15" }, - "scope": 2810, - "src": "1547:119:15", + "scope": 2924, + "src": "436:119:15", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [3531], "body": { - "id": 2808, + "id": 2922, "nodeType": "Block", - "src": "1800:48:15", + "src": "698:48:15", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2805, + "id": 2919, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2799, - "src": "1833:7:15", + "referencedDeclaration": 2912, + "src": "731:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -888,33 +869,32 @@ } ], "expression": { - "argumentTypes": null, - "id": 2802, + "id": 2916, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4291, - "src": "1810:5:15", + "referencedDeclaration": 4294967271, + "src": "708:5:15", "typeDescriptions": { - "typeIdentifier": "t_super$_OrganizerRoleMock_$2810", + "typeIdentifier": "t_super$_OrganizerRoleMock_$2924", "typeString": "contract super OrganizerRoleMock" } }, - "id": 2804, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_removeOrganizer", "nodeType": "MemberAccess", - "referencedDeclaration": 3400, - "src": "1810:22:15", + "referencedDeclaration": 3531, + "src": "708:22:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2806, + "id": 2920, "isConstant": false, "isLValue": false, "isPure": false, @@ -922,36 +902,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1810:31:15", + "src": "708:31:15", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2807, + "id": 2921, "nodeType": "ExpressionStatement", - "src": "1810:31:15" + "src": "708:31:15" } ] }, - "documentation": null, - "id": 2809, + "id": 2923, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeOrganizer", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2914, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "689:8:15" + }, "parameters": { - "id": 2800, + "id": 2913, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2799, + "id": 2912, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2809, - "src": "1774:15:15", + "scope": 2923, + "src": "663:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -959,52 +946,55 @@ "typeString": "address" }, "typeName": { - "id": 2798, + "id": 2911, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1774:7:15", + "src": "663:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "1773:17:15" + "src": "662:17:15" }, "returnParameters": { - "id": 2801, + "id": 2915, "nodeType": "ParameterList", "parameters": [], - "src": "1800:0:15" + "src": "698:0:15" }, - "scope": 2810, - "src": "1748:100:15", + "scope": 2924, + "src": "637:109:15", "stateMutability": "nonpayable", - "superFunction": 3400, + "virtual": false, "visibility": "internal" } ], - "scope": 2811, - "src": "1345:505:15" + "scope": 2925, + "src": "241:507:15" } ], - "src": "1282:569:15" + "src": "170:579:15" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.515Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.110Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } diff --git a/build/contracts/Pausable.json b/build/contracts/Pausable.json index ba79081..64dc3bd 100644 --- a/build/contracts/Pausable.json +++ b/build/contracts/Pausable.json @@ -1,12 +1,6 @@ { "contractName": "Pausable", "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -34,7 +28,6 @@ "type": "event" }, { - "constant": true, "inputs": [], "name": "isPaused", "outputs": [ @@ -44,88 +37,97 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "pause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "_unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism (Circuir Breaker) that should be triggered by an authorized account. * This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of the inheritd contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place. * IMPORTANT: The inherited contract should override the methods {pause} and {unpause} to add validations regarding access control (onlyOraganizer, onlyJudge, or any other access control rule needded) to avoid the inherited contract being paused/unpaused by unauthorized parties.\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"isPaused()\":{\"return\":\"{true} if the contract is paused; otherwise, {false}.\"},\"pause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_pause()}.\"},\"unpause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_unpause()}.\"}}},\"userdoc\":{\"methods\":{\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Triggers the paused state.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x13c9c60ded6c062f523ae97e0ccce959b4445fb9350261ec676fcffa86f7cff0\",\"urls\":[\"bzz-raw://fe0a5cd6d67d4abbe45a965a57efb9fc3de00352f8e1345fdd6d24be6a372327\",\"dweb:/ipfs/Qma1rpyzs9xHQcqHSeXaDwM9ZCrwDdXZ74M62aoD4mBDEy\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism (Circuir Breaker) that should be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of the inheritd contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place. IMPORTANT: The inherited contract should override the methods {pause} and {unpause} to add validations regarding access control (onlyOraganizer, onlyJudge, or any other access control rule needded) to avoid the inherited contract being paused/unpaused by unauthorized parties.\",\"events\":{\"Paused(address)\":{\"details\":\"emitted when the pause is triggered.\"},\"Unpaused(address)\":{\"details\":\"emitted when the pause is lifted.\"}},\"kind\":\"dev\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"isPaused()\":{\"returns\":{\"_0\":\"{true} if the contract is paused; otherwise, {false}.\"}},\"pause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_pause()}.\"},\"unpause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_unpause()}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Triggers the paused state.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0xe658c5869875103432729fd020763ede0557d94848fe421aa140050cfad0215c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f8cc47d690ed64cf8780b26b9d25cd945004831b1ade3be565e47b61d070bee\",\"dweb:/ipfs/QmZACTXi1S92e1tF8tXWi5oWKfptjwMTfDyRcJXDPRLUcZ\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism (Circuir Breaker) that should be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of the inheritd contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n *\n * IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\n * to add validations regarding access control (onlyOraganizer, onlyJudge, or any other\n * access control rule needded) to avoid the inherited contract being paused/unpaused\n * by unauthorized parties.\n */\ncontract Pausable {\n /// @dev emitted when the pause is triggered.\n event Paused(address account);\n\n /// @dev emitted when the pause is lifted.\n event Unpaused(address account);\n\n bool private _paused;\n\n /// @dev Initializes the contract in unpaused state.\n constructor() internal {\n _paused = false;\n }\n\n /**\n @notice Returns if the contract is paused or not.\n @return {true} if the contract is paused; otherwise, {false}.\n */\n\n function isPaused() public view returns (bool) {\n return _paused;\n }\n\n /// @dev Modifier to make a function callable only when the contract is not paused.\n modifier whenNotPaused() {\n require(!_paused, \"Contract is paused\");\n _;\n }\n\n /// @dev Modifier to make a function callable only when the contract is paused.\n modifier whenPaused() {\n require(_paused, \"Contract is not paused\");\n _;\n }\n\n /**\n @notice Triggers the paused state.\n @dev Must be inherited to apply proper access control before calling internal\n implementation on {_pause()}.\n */\n function pause() public {\n _pause();\n }\n\n /**\n @notice Lifts the paused state.\n @dev Must be inherited to apply proper access control before calling internal\n implementation on {_unpause()}.\n */\n function unpause() public {\n _unpause();\n }\n\n /// @dev Internal implementation that triggers the paused state.\n function _pause() internal whenNotPaused {\n _paused = true;\n emit Paused(msg.sender);\n }\n\n /// @dev Internal implementation that lifts the paused state.\n function _unpause() public whenPaused {\n _paused = false;\n emit Unpaused(msg.sender);\n }\n}\n", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism (Circuir Breaker) that should be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of the inheritd contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n *\n * IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\n * to add validations regarding access control (onlyOraganizer, onlyJudge, or any other\n * access control rule needded) to avoid the inherited contract being paused/unpaused\n * by unauthorized parties.\n */\nabstract contract Pausable {\n /// @dev emitted when the pause is triggered.\n event Paused(address account);\n\n /// @dev emitted when the pause is lifted.\n event Unpaused(address account);\n\n bool private _paused;\n\n /// @dev Initializes the contract in unpaused state.\n constructor() {\n _paused = false;\n }\n\n /**\n @notice Returns if the contract is paused or not.\n @return {true} if the contract is paused; otherwise, {false}.\n */\n\n function isPaused() public view returns (bool) {\n return _paused;\n }\n\n /// @dev Modifier to make a function callable only when the contract is not paused.\n modifier whenNotPaused() {\n require(!_paused, \"Contract is paused\");\n _;\n }\n\n /// @dev Modifier to make a function callable only when the contract is paused.\n modifier whenPaused() {\n require(_paused, \"Contract is not paused\");\n _;\n }\n\n /**\n @notice Triggers the paused state.\n @dev Must be inherited to apply proper access control before calling internal\n implementation on {_pause()}.\n */\n function pause() virtual public {\n _pause();\n }\n\n /**\n @notice Lifts the paused state.\n @dev Must be inherited to apply proper access control before calling internal\n implementation on {_unpause()}.\n */\n function unpause() virtual public {\n _unpause();\n }\n\n /// @dev Internal implementation that triggers the paused state.\n function _pause() virtual internal whenNotPaused {\n _paused = true;\n emit Paused(msg.sender);\n }\n\n /// @dev Internal implementation that lifts the paused state.\n function _unpause() virtual public whenPaused {\n _paused = false;\n emit Unpaused(msg.sender);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "exportedSymbols": { - "Pausable": [2499] + "Pausable": [2607] }, - "id": 2500, + "id": 2608, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2409, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2506, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "40:31:7" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@dev Contract module which allows children to implement an emergency stop\nmechanism (Circuir Breaker) that should be triggered by an authorized account.\n * This module is used through inheritance. It will make available the\nmodifiers `whenNotPaused` and `whenPaused`, which can be applied to\nthe functions of the inheritd contract. Note that they will not be pausable by\nsimply including this module, only once the modifiers are put in place.\n * IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\nto add validations regarding access control (onlyOraganizer, onlyJudge, or any other\naccess control rule needded) to avoid the inherited contract being paused/unpaused\nby unauthorized parties.", + "documentation": { + "id": 2507, + "nodeType": "StructuredDocumentation", + "src": "73:760:7", + "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism (Circuir Breaker) that should be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of the inheritd contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place.\n IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\n to add validations regarding access control (onlyOraganizer, onlyJudge, or any other\n access control rule needded) to avoid the inherited contract being paused/unpaused\n by unauthorized parties." + }, "fullyImplemented": true, - "id": 2499, - "linearizedBaseContracts": [2499], + "id": 2607, + "linearizedBaseContracts": [2607], "name": "Pausable", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "documentation": "@dev emitted when the pause is triggered.", - "id": 2413, + "documentation": { + "id": 2508, + "nodeType": "StructuredDocumentation", + "src": "867:45:7", + "text": "@dev emitted when the pause is triggered." + }, + "id": 2512, "name": "Paused", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 2511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2411, + "id": 2510, "indexed": false, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "873:15:7", + "scope": 2512, + "src": "930:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -133,42 +135,47 @@ "typeString": "address" }, "typeName": { - "id": 2410, + "id": 2509, "name": "address", "nodeType": "ElementaryTypeName", - "src": "873:7:7", + "src": "930:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "872:17:7" + "src": "929:17:7" }, - "src": "860:30:7" + "src": "917:30:7" }, { "anonymous": false, - "documentation": "@dev emitted when the pause is lifted.", - "id": 2417, + "documentation": { + "id": 2513, + "nodeType": "StructuredDocumentation", + "src": "953:42:7", + "text": "@dev emitted when the pause is lifted." + }, + "id": 2517, "name": "Unpaused", "nodeType": "EventDefinition", "parameters": { - "id": 2416, + "id": 2516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2415, + "id": 2515, "indexed": false, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2417, - "src": "958:15:7", + "scope": 2517, + "src": "1015:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -176,31 +183,31 @@ "typeString": "address" }, "typeName": { - "id": 2414, + "id": 2514, "name": "address", "nodeType": "ElementaryTypeName", - "src": "958:7:7", + "src": "1015:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "957:17:7" + "src": "1014:17:7" }, - "src": "943:32:7" + "src": "1000:32:7" }, { "constant": false, - "id": 2419, + "id": 2519, + "mutability": "mutable", "name": "_paused", "nodeType": "VariableDeclaration", - "scope": 2499, - "src": "981:20:7", + "scope": 2607, + "src": "1038:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -208,40 +215,37 @@ "typeString": "bool" }, "typeName": { - "id": 2418, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "981:4:7", + "src": "1038:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 2426, + "id": 2527, "nodeType": "Block", - "src": "1088:32:7", + "src": "1136:32:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2424, + "id": 2525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2422, + "id": 2523, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1098:7:7", + "referencedDeclaration": 2519, + "src": "1146:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -250,111 +254,120 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 2423, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1108:5:7", - "subdenomination": null, + "src": "1156:5:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1098:15:7", + "src": "1146:15:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2425, + "id": 2526, "nodeType": "ExpressionStatement", - "src": "1098:15:7" + "src": "1146:15:7" } ] }, - "documentation": "@dev Initializes the contract in unpaused state.", - "id": 2427, + "documentation": { + "id": 2520, + "nodeType": "StructuredDocumentation", + "src": "1065:52:7", + "text": "@dev Initializes the contract in unpaused state." + }, + "id": 2528, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2420, + "id": 2521, "nodeType": "ParameterList", "parameters": [], - "src": "1076:2:7" + "src": "1133:2:7" }, "returnParameters": { - "id": 2421, + "id": 2522, "nodeType": "ParameterList", "parameters": [], - "src": "1088:0:7" + "src": "1136:0:7" }, - "scope": 2499, - "src": "1065:55:7", + "scope": 2607, + "src": "1122:46:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2434, + "id": 2536, "nodeType": "Block", - "src": "1318:31:7", + "src": "1366:31:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2432, + "id": 2534, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1335:7:7", + "referencedDeclaration": 2519, + "src": "1383:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2431, - "id": 2433, + "functionReturnParameters": 2533, + "id": 2535, "nodeType": "Return", - "src": "1328:14:7" + "src": "1376:14:7" } ] }, - "documentation": "@notice Returns if the contract is paused or not.\n@return {true} if the contract is paused; otherwise, {false}.", - "id": 2435, + "documentation": { + "id": 2529, + "nodeType": "StructuredDocumentation", + "src": "1174:139:7", + "text": "@notice Returns if the contract is paused or not.\n@return {true} if the contract is paused; otherwise, {false}." + }, + "functionSelector": "b187bd26", + "id": 2537, "implemented": true, "kind": "function", "modifiers": [], "name": "isPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2428, + "id": 2530, "nodeType": "ParameterList", "parameters": [], - "src": "1288:2:7" + "src": "1336:2:7" }, "returnParameters": { - "id": 2431, + "id": 2533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 2532, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2435, - "src": "1312:4:7", + "scope": 2537, + "src": "1360:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -362,40 +375,37 @@ "typeString": "bool" }, "typeName": { - "id": 2429, + "id": 2531, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1312:4:7", + "src": "1360:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1311:6:7" + "src": "1359:6:7" }, - "scope": 2499, - "src": "1271:78:7", + "scope": 2607, + "src": "1319:78:7", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2444, + "id": 2547, "nodeType": "Block", - "src": "1468:67:7", + "src": "1516:67:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2439, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -403,15 +413,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1486:8:7", + "src": "1534:8:7", "subExpression": { - "argumentTypes": null, - "id": 2438, + "id": 2541, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1487:7:7", + "referencedDeclaration": 2519, + "src": "1535:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -423,17 +432,15 @@ } }, { - "argumentTypes": null, "hexValue": "436f6e747261637420697320706175736564", - "id": 2440, + "id": 2543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1496:20:7", - "subdenomination": null, + "src": "1544:20:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e55600974a468a5baf1f1454a24481ec68f787ee02cd9f1d97c35ce2a8d2093d", "typeString": "literal_string \"Contract is paused\"" @@ -452,18 +459,18 @@ "typeString": "literal_string \"Contract is paused\"" } ], - "id": 2437, + "id": 2540, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1478:7:7", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1526:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2441, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": false, @@ -471,71 +478,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1478:39:7", + "src": "1526:39:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2442, + "id": 2545, "nodeType": "ExpressionStatement", - "src": "1478:39:7" + "src": "1526:39:7" }, { - "id": 2443, + "id": 2546, "nodeType": "PlaceholderStatement", - "src": "1527:1:7" + "src": "1575:1:7" } ] }, - "documentation": "@dev Modifier to make a function callable only when the contract is not paused.", - "id": 2445, + "documentation": { + "id": 2538, + "nodeType": "StructuredDocumentation", + "src": "1403:83:7", + "text": "@dev Modifier to make a function callable only when the contract is not paused." + }, + "id": 2548, "name": "whenNotPaused", "nodeType": "ModifierDefinition", "parameters": { - "id": 2436, + "id": 2539, "nodeType": "ParameterList", "parameters": [], - "src": "1465:2:7" + "src": "1513:2:7" }, - "src": "1443:92:7", + "src": "1491:92:7", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2453, + "id": 2557, "nodeType": "Block", - "src": "1647:70:7", + "src": "1695:70:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2448, + "id": 2552, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1665:7:7", + "referencedDeclaration": 2519, + "src": "1713:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "436f6e7472616374206973206e6f7420706175736564", - "id": 2449, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1674:24:7", - "subdenomination": null, + "src": "1722:24:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_883a9c8cea24e43c5972089eb56843741b0ce542fad768babee81b71941b7284", "typeString": "literal_string \"Contract is not paused\"" @@ -554,18 +564,18 @@ "typeString": "literal_string \"Contract is not paused\"" } ], - "id": 2447, + "id": 2551, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1657:7:7", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1705:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2450, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": false, @@ -573,60 +583,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1657:42:7", + "src": "1705:42:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2451, + "id": 2555, "nodeType": "ExpressionStatement", - "src": "1657:42:7" + "src": "1705:42:7" }, { - "id": 2452, + "id": 2556, "nodeType": "PlaceholderStatement", - "src": "1709:1:7" + "src": "1757:1:7" } ] }, - "documentation": "@dev Modifier to make a function callable only when the contract is paused.", - "id": 2454, + "documentation": { + "id": 2549, + "nodeType": "StructuredDocumentation", + "src": "1589:79:7", + "text": "@dev Modifier to make a function callable only when the contract is paused." + }, + "id": 2558, "name": "whenPaused", "nodeType": "ModifierDefinition", "parameters": { - "id": 2446, + "id": 2550, "nodeType": "ParameterList", "parameters": [], - "src": "1644:2:7" + "src": "1692:2:7" }, - "src": "1625:92:7", + "src": "1673:92:7", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2460, + "id": 2565, "nodeType": "Block", - "src": "1930:25:7", + "src": "1986:25:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2457, + "id": 2562, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2483, - "src": "1940:6:7", + "referencedDeclaration": 2590, + "src": "1996:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2458, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -634,67 +650,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1940:8:7", + "src": "1996:8:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2459, + "id": 2564, "nodeType": "ExpressionStatement", - "src": "1940:8:7" + "src": "1996:8:7" } ] }, - "documentation": "@notice Triggers the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_pause()}.", - "id": 2461, + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "1771:178:7", + "text": "@notice Triggers the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_pause()}." + }, + "functionSelector": "8456cb59", + "id": 2566, "implemented": true, "kind": "function", "modifiers": [], "name": "pause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2455, + "id": 2560, "nodeType": "ParameterList", "parameters": [], - "src": "1920:2:7" + "src": "1968:2:7" }, "returnParameters": { - "id": 2456, + "id": 2561, "nodeType": "ParameterList", "parameters": [], - "src": "1930:0:7" + "src": "1986:0:7" }, - "scope": 2499, - "src": "1906:49:7", + "scope": 2607, + "src": "1954:57:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2467, + "id": 2573, "nodeType": "Block", - "src": "2169:27:7", + "src": "2233:27:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2464, + "id": 2570, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "2179:8:7", + "referencedDeclaration": 2606, + "src": "2243:8:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2465, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -702,65 +724,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2179:10:7", + "src": "2243:10:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2466, + "id": 2572, "nodeType": "ExpressionStatement", - "src": "2179:10:7" + "src": "2243:10:7" } ] }, - "documentation": "@notice Lifts the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_unpause()}.", - "id": 2468, + "documentation": { + "id": 2567, + "nodeType": "StructuredDocumentation", + "src": "2017:177:7", + "text": "@notice Lifts the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_unpause()}." + }, + "functionSelector": "3f4ba83a", + "id": 2574, "implemented": true, "kind": "function", "modifiers": [], "name": "unpause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2462, + "id": 2568, "nodeType": "ParameterList", "parameters": [], - "src": "2159:2:7" + "src": "2215:2:7" }, "returnParameters": { - "id": 2463, + "id": 2569, "nodeType": "ParameterList", "parameters": [], - "src": "2169:0:7" + "src": "2233:0:7" }, - "scope": 2499, - "src": "2143:53:7", + "scope": 2607, + "src": "2199:61:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2482, + "id": 2589, "nodeType": "Block", - "src": "2312:64:7", + "src": "2384:64:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2475, + "id": 2582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2473, + "id": 2580, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "2322:7:7", + "referencedDeclaration": 2519, + "src": "2394:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -769,61 +796,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2474, + "id": 2581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2332:4:7", - "subdenomination": null, + "src": "2404:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2322:14:7", + "src": "2394:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2476, + "id": 2583, "nodeType": "ExpressionStatement", - "src": "2322:14:7" + "src": "2394:14:7" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2478, + "id": 2585, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2358:3:7", + "referencedDeclaration": 4294967281, + "src": "2430:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2479, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2358:10:7", + "src": "2430:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -837,18 +858,18 @@ "typeString": "address payable" } ], - "id": 2477, + "id": 2584, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "2351:6:7", + "referencedDeclaration": 2512, + "src": "2423:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2480, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, @@ -856,85 +877,87 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2351:18:7", + "src": "2423:18:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2481, + "id": 2588, "nodeType": "EmitStatement", - "src": "2346:23:7" + "src": "2418:23:7" } ] }, - "documentation": "@dev Internal implementation that triggers the paused state.", - "id": 2483, + "documentation": { + "id": 2575, + "nodeType": "StructuredDocumentation", + "src": "2266:64:7", + "text": "@dev Internal implementation that triggers the paused state." + }, + "id": 2590, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2471, + "id": 2578, "modifierName": { - "argumentTypes": null, - "id": 2470, + "id": 2577, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2298:13:7", + "referencedDeclaration": 2548, + "src": "2370:13:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2298:13:7" + "src": "2370:13:7" } ], "name": "_pause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2469, + "id": 2576, "nodeType": "ParameterList", "parameters": [], - "src": "2286:2:7" + "src": "2350:2:7" }, "returnParameters": { - "id": 2472, + "id": 2579, "nodeType": "ParameterList", "parameters": [], - "src": "2312:0:7" + "src": "2384:0:7" }, - "scope": 2499, - "src": "2271:105:7", + "scope": 2607, + "src": "2335:113:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 2497, + "id": 2605, "nodeType": "Block", - "src": "2486:67:7", + "src": "2566:67:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2490, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2488, + "id": 2596, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "2496:7:7", + "referencedDeclaration": 2519, + "src": "2576:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -943,61 +966,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 2489, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2506:5:7", - "subdenomination": null, + "src": "2586:5:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2496:15:7", + "src": "2576:15:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2491, + "id": 2599, "nodeType": "ExpressionStatement", - "src": "2496:15:7" + "src": "2576:15:7" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2493, + "id": 2601, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2535:3:7", + "referencedDeclaration": 4294967281, + "src": "2615:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2494, + "id": 2602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2535:10:7", + "src": "2615:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1011,18 +1028,18 @@ "typeString": "address payable" } ], - "id": 2492, + "id": 2600, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "2526:8:7", + "referencedDeclaration": 2517, + "src": "2606:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2495, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -1030,113 +1047,131 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2526:20:7", + "src": "2606:20:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2496, + "id": 2604, "nodeType": "EmitStatement", - "src": "2521:25:7" + "src": "2601:25:7" } ] }, - "documentation": "@dev Internal implementation that lifts the paused state.", - "id": 2498, + "documentation": { + "id": 2591, + "nodeType": "StructuredDocumentation", + "src": "2454:61:7", + "text": "@dev Internal implementation that lifts the paused state." + }, + "functionSelector": "fc8234cb", + "id": 2606, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2486, + "id": 2594, "modifierName": { - "argumentTypes": null, - "id": 2485, + "id": 2593, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "2475:10:7", + "referencedDeclaration": 2558, + "src": "2555:10:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2475:10:7" + "src": "2555:10:7" } ], "name": "_unpause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2484, + "id": 2592, "nodeType": "ParameterList", "parameters": [], - "src": "2465:2:7" + "src": "2537:2:7" }, "returnParameters": { - "id": 2487, + "id": 2595, "nodeType": "ParameterList", "parameters": [], - "src": "2486:0:7" + "src": "2566:0:7" }, - "scope": 2499, - "src": "2448:105:7", + "scope": 2607, + "src": "2520:113:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" } ], - "scope": 2500, - "src": "786:1769:7" + "scope": 2608, + "src": "834:1801:7" } ], - "src": "0:2556:7" + "src": "40:2596:7" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "exportedSymbols": { - "Pausable": [2499] + "Pausable": [2607] }, - "id": 2500, + "id": 2608, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2409, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2506, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "40:31:7" }, { + "abstract": true, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", - "documentation": "@dev Contract module which allows children to implement an emergency stop\nmechanism (Circuir Breaker) that should be triggered by an authorized account.\n * This module is used through inheritance. It will make available the\nmodifiers `whenNotPaused` and `whenPaused`, which can be applied to\nthe functions of the inheritd contract. Note that they will not be pausable by\nsimply including this module, only once the modifiers are put in place.\n * IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\nto add validations regarding access control (onlyOraganizer, onlyJudge, or any other\naccess control rule needded) to avoid the inherited contract being paused/unpaused\nby unauthorized parties.", + "documentation": { + "id": 2507, + "nodeType": "StructuredDocumentation", + "src": "73:760:7", + "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism (Circuir Breaker) that should be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of the inheritd contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place.\n IMPORTANT: The inherited contract should override the methods {pause} and {unpause}\n to add validations regarding access control (onlyOraganizer, onlyJudge, or any other\n access control rule needded) to avoid the inherited contract being paused/unpaused\n by unauthorized parties." + }, "fullyImplemented": true, - "id": 2499, - "linearizedBaseContracts": [2499], + "id": 2607, + "linearizedBaseContracts": [2607], "name": "Pausable", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "documentation": "@dev emitted when the pause is triggered.", - "id": 2413, + "documentation": { + "id": 2508, + "nodeType": "StructuredDocumentation", + "src": "867:45:7", + "text": "@dev emitted when the pause is triggered." + }, + "id": 2512, "name": "Paused", "nodeType": "EventDefinition", "parameters": { - "id": 2412, + "id": 2511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2411, + "id": 2510, "indexed": false, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "873:15:7", + "scope": 2512, + "src": "930:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1144,42 +1179,47 @@ "typeString": "address" }, "typeName": { - "id": 2410, + "id": 2509, "name": "address", "nodeType": "ElementaryTypeName", - "src": "873:7:7", + "src": "930:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "872:17:7" + "src": "929:17:7" }, - "src": "860:30:7" + "src": "917:30:7" }, { "anonymous": false, - "documentation": "@dev emitted when the pause is lifted.", - "id": 2417, + "documentation": { + "id": 2513, + "nodeType": "StructuredDocumentation", + "src": "953:42:7", + "text": "@dev emitted when the pause is lifted." + }, + "id": 2517, "name": "Unpaused", "nodeType": "EventDefinition", "parameters": { - "id": 2416, + "id": 2516, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2415, + "id": 2515, "indexed": false, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 2417, - "src": "958:15:7", + "scope": 2517, + "src": "1015:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,31 +1227,31 @@ "typeString": "address" }, "typeName": { - "id": 2414, + "id": 2514, "name": "address", "nodeType": "ElementaryTypeName", - "src": "958:7:7", + "src": "1015:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "957:17:7" + "src": "1014:17:7" }, - "src": "943:32:7" + "src": "1000:32:7" }, { "constant": false, - "id": 2419, + "id": 2519, + "mutability": "mutable", "name": "_paused", "nodeType": "VariableDeclaration", - "scope": 2499, - "src": "981:20:7", + "scope": 2607, + "src": "1038:20:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1219,40 +1259,37 @@ "typeString": "bool" }, "typeName": { - "id": 2418, + "id": 2518, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "981:4:7", + "src": "1038:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "private" }, { "body": { - "id": 2426, + "id": 2527, "nodeType": "Block", - "src": "1088:32:7", + "src": "1136:32:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2424, + "id": 2525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2422, + "id": 2523, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1098:7:7", + "referencedDeclaration": 2519, + "src": "1146:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1261,111 +1298,120 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 2423, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1108:5:7", - "subdenomination": null, + "src": "1156:5:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "1098:15:7", + "src": "1146:15:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2425, + "id": 2526, "nodeType": "ExpressionStatement", - "src": "1098:15:7" + "src": "1146:15:7" } ] }, - "documentation": "@dev Initializes the contract in unpaused state.", - "id": 2427, + "documentation": { + "id": 2520, + "nodeType": "StructuredDocumentation", + "src": "1065:52:7", + "text": "@dev Initializes the contract in unpaused state." + }, + "id": 2528, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2420, + "id": 2521, "nodeType": "ParameterList", "parameters": [], - "src": "1076:2:7" + "src": "1133:2:7" }, "returnParameters": { - "id": 2421, + "id": 2522, "nodeType": "ParameterList", "parameters": [], - "src": "1088:0:7" + "src": "1136:0:7" }, - "scope": 2499, - "src": "1065:55:7", + "scope": 2607, + "src": "1122:46:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2434, + "id": 2536, "nodeType": "Block", - "src": "1318:31:7", + "src": "1366:31:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2432, + "id": 2534, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1335:7:7", + "referencedDeclaration": 2519, + "src": "1383:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2431, - "id": 2433, + "functionReturnParameters": 2533, + "id": 2535, "nodeType": "Return", - "src": "1328:14:7" + "src": "1376:14:7" } ] }, - "documentation": "@notice Returns if the contract is paused or not.\n@return {true} if the contract is paused; otherwise, {false}.", - "id": 2435, + "documentation": { + "id": 2529, + "nodeType": "StructuredDocumentation", + "src": "1174:139:7", + "text": "@notice Returns if the contract is paused or not.\n@return {true} if the contract is paused; otherwise, {false}." + }, + "functionSelector": "b187bd26", + "id": 2537, "implemented": true, "kind": "function", "modifiers": [], "name": "isPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2428, + "id": 2530, "nodeType": "ParameterList", "parameters": [], - "src": "1288:2:7" + "src": "1336:2:7" }, "returnParameters": { - "id": 2431, + "id": 2533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2430, + "id": 2532, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 2435, - "src": "1312:4:7", + "scope": 2537, + "src": "1360:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1373,40 +1419,37 @@ "typeString": "bool" }, "typeName": { - "id": 2429, + "id": 2531, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1312:4:7", + "src": "1360:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "1311:6:7" + "src": "1359:6:7" }, - "scope": 2499, - "src": "1271:78:7", + "scope": 2607, + "src": "1319:78:7", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2444, + "id": 2547, "nodeType": "Block", - "src": "1468:67:7", + "src": "1516:67:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2439, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -1414,15 +1457,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1486:8:7", + "src": "1534:8:7", "subExpression": { - "argumentTypes": null, - "id": 2438, + "id": 2541, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1487:7:7", + "referencedDeclaration": 2519, + "src": "1535:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1434,17 +1476,15 @@ } }, { - "argumentTypes": null, "hexValue": "436f6e747261637420697320706175736564", - "id": 2440, + "id": 2543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1496:20:7", - "subdenomination": null, + "src": "1544:20:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e55600974a468a5baf1f1454a24481ec68f787ee02cd9f1d97c35ce2a8d2093d", "typeString": "literal_string \"Contract is paused\"" @@ -1463,18 +1503,18 @@ "typeString": "literal_string \"Contract is paused\"" } ], - "id": 2437, + "id": 2540, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1478:7:7", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1526:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2441, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": false, @@ -1482,71 +1522,74 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1478:39:7", + "src": "1526:39:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2442, + "id": 2545, "nodeType": "ExpressionStatement", - "src": "1478:39:7" + "src": "1526:39:7" }, { - "id": 2443, + "id": 2546, "nodeType": "PlaceholderStatement", - "src": "1527:1:7" + "src": "1575:1:7" } ] }, - "documentation": "@dev Modifier to make a function callable only when the contract is not paused.", - "id": 2445, + "documentation": { + "id": 2538, + "nodeType": "StructuredDocumentation", + "src": "1403:83:7", + "text": "@dev Modifier to make a function callable only when the contract is not paused." + }, + "id": 2548, "name": "whenNotPaused", "nodeType": "ModifierDefinition", "parameters": { - "id": 2436, + "id": 2539, "nodeType": "ParameterList", "parameters": [], - "src": "1465:2:7" + "src": "1513:2:7" }, - "src": "1443:92:7", + "src": "1491:92:7", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2453, + "id": 2557, "nodeType": "Block", - "src": "1647:70:7", + "src": "1695:70:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 2448, + "id": 2552, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "1665:7:7", + "referencedDeclaration": 2519, + "src": "1713:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "436f6e7472616374206973206e6f7420706175736564", - "id": 2449, + "id": 2553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1674:24:7", - "subdenomination": null, + "src": "1722:24:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_883a9c8cea24e43c5972089eb56843741b0ce542fad768babee81b71941b7284", "typeString": "literal_string \"Contract is not paused\"" @@ -1565,18 +1608,18 @@ "typeString": "literal_string \"Contract is not paused\"" } ], - "id": 2447, + "id": 2551, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1657:7:7", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1705:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2450, + "id": 2554, "isConstant": false, "isLValue": false, "isPure": false, @@ -1584,60 +1627,66 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1657:42:7", + "src": "1705:42:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2451, + "id": 2555, "nodeType": "ExpressionStatement", - "src": "1657:42:7" + "src": "1705:42:7" }, { - "id": 2452, + "id": 2556, "nodeType": "PlaceholderStatement", - "src": "1709:1:7" + "src": "1757:1:7" } ] }, - "documentation": "@dev Modifier to make a function callable only when the contract is paused.", - "id": 2454, + "documentation": { + "id": 2549, + "nodeType": "StructuredDocumentation", + "src": "1589:79:7", + "text": "@dev Modifier to make a function callable only when the contract is paused." + }, + "id": 2558, "name": "whenPaused", "nodeType": "ModifierDefinition", "parameters": { - "id": 2446, + "id": 2550, "nodeType": "ParameterList", "parameters": [], - "src": "1644:2:7" + "src": "1692:2:7" }, - "src": "1625:92:7", + "src": "1673:92:7", + "virtual": false, "visibility": "internal" }, { "body": { - "id": 2460, + "id": 2565, "nodeType": "Block", - "src": "1930:25:7", + "src": "1986:25:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2457, + "id": 2562, "name": "_pause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2483, - "src": "1940:6:7", + "referencedDeclaration": 2590, + "src": "1996:6:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2458, + "id": 2563, "isConstant": false, "isLValue": false, "isPure": false, @@ -1645,67 +1694,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1940:8:7", + "src": "1996:8:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2459, + "id": 2564, "nodeType": "ExpressionStatement", - "src": "1940:8:7" + "src": "1996:8:7" } ] }, - "documentation": "@notice Triggers the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_pause()}.", - "id": 2461, + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "1771:178:7", + "text": "@notice Triggers the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_pause()}." + }, + "functionSelector": "8456cb59", + "id": 2566, "implemented": true, "kind": "function", "modifiers": [], "name": "pause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2455, + "id": 2560, "nodeType": "ParameterList", "parameters": [], - "src": "1920:2:7" + "src": "1968:2:7" }, "returnParameters": { - "id": 2456, + "id": 2561, "nodeType": "ParameterList", "parameters": [], - "src": "1930:0:7" + "src": "1986:0:7" }, - "scope": 2499, - "src": "1906:49:7", + "scope": 2607, + "src": "1954:57:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2467, + "id": 2573, "nodeType": "Block", - "src": "2169:27:7", + "src": "2233:27:7", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 2464, + "id": 2570, "name": "_unpause", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "2179:8:7", + "referencedDeclaration": 2606, + "src": "2243:8:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2465, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, @@ -1713,65 +1768,70 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2179:10:7", + "src": "2243:10:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2466, + "id": 2572, "nodeType": "ExpressionStatement", - "src": "2179:10:7" + "src": "2243:10:7" } ] }, - "documentation": "@notice Lifts the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_unpause()}.", - "id": 2468, + "documentation": { + "id": 2567, + "nodeType": "StructuredDocumentation", + "src": "2017:177:7", + "text": "@notice Lifts the paused state.\n@dev Must be inherited to apply proper access control before calling internal\nimplementation on {_unpause()}." + }, + "functionSelector": "3f4ba83a", + "id": 2574, "implemented": true, "kind": "function", "modifiers": [], "name": "unpause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2462, + "id": 2568, "nodeType": "ParameterList", "parameters": [], - "src": "2159:2:7" + "src": "2215:2:7" }, "returnParameters": { - "id": 2463, + "id": 2569, "nodeType": "ParameterList", "parameters": [], - "src": "2169:0:7" + "src": "2233:0:7" }, - "scope": 2499, - "src": "2143:53:7", + "scope": 2607, + "src": "2199:61:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" }, { "body": { - "id": 2482, + "id": 2589, "nodeType": "Block", - "src": "2312:64:7", + "src": "2384:64:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2475, + "id": 2582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2473, + "id": 2580, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "2322:7:7", + "referencedDeclaration": 2519, + "src": "2394:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1780,61 +1840,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 2474, + "id": 2581, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2332:4:7", - "subdenomination": null, + "src": "2404:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "2322:14:7", + "src": "2394:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2476, + "id": 2583, "nodeType": "ExpressionStatement", - "src": "2322:14:7" + "src": "2394:14:7" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2478, + "id": 2585, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2358:3:7", + "referencedDeclaration": 4294967281, + "src": "2430:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2479, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2358:10:7", + "src": "2430:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1848,18 +1902,18 @@ "typeString": "address payable" } ], - "id": 2477, + "id": 2584, "name": "Paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "2351:6:7", + "referencedDeclaration": 2512, + "src": "2423:6:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2480, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, @@ -1867,85 +1921,87 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2351:18:7", + "src": "2423:18:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2481, + "id": 2588, "nodeType": "EmitStatement", - "src": "2346:23:7" + "src": "2418:23:7" } ] }, - "documentation": "@dev Internal implementation that triggers the paused state.", - "id": 2483, + "documentation": { + "id": 2575, + "nodeType": "StructuredDocumentation", + "src": "2266:64:7", + "text": "@dev Internal implementation that triggers the paused state." + }, + "id": 2590, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2471, + "id": 2578, "modifierName": { - "argumentTypes": null, - "id": 2470, + "id": 2577, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "2298:13:7", + "referencedDeclaration": 2548, + "src": "2370:13:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2298:13:7" + "src": "2370:13:7" } ], "name": "_pause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2469, + "id": 2576, "nodeType": "ParameterList", "parameters": [], - "src": "2286:2:7" + "src": "2350:2:7" }, "returnParameters": { - "id": 2472, + "id": 2579, "nodeType": "ParameterList", "parameters": [], - "src": "2312:0:7" + "src": "2384:0:7" }, - "scope": 2499, - "src": "2271:105:7", + "scope": 2607, + "src": "2335:113:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "internal" }, { "body": { - "id": 2497, + "id": 2605, "nodeType": "Block", - "src": "2486:67:7", + "src": "2566:67:7", "statements": [ { "expression": { - "argumentTypes": null, - "id": 2490, + "id": 2598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, - "id": 2488, + "id": 2596, "name": "_paused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2419, - "src": "2496:7:7", + "referencedDeclaration": 2519, + "src": "2576:7:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1954,61 +2010,55 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 2489, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2506:5:7", - "subdenomination": null, + "src": "2586:5:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "2496:15:7", + "src": "2576:15:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2491, + "id": 2599, "nodeType": "ExpressionStatement", - "src": "2496:15:7" + "src": "2576:15:7" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2493, + "id": 2601, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "2535:3:7", + "referencedDeclaration": 4294967281, + "src": "2615:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2494, + "id": 2602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2535:10:7", + "src": "2615:10:7", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2022,18 +2072,18 @@ "typeString": "address payable" } ], - "id": 2492, + "id": 2600, "name": "Unpaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "2526:8:7", + "referencedDeclaration": 2517, + "src": "2606:8:7", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 2495, + "id": 2603, "isConstant": false, "isLValue": false, "isPure": false, @@ -2041,79 +2091,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2526:20:7", + "src": "2606:20:7", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2496, + "id": 2604, "nodeType": "EmitStatement", - "src": "2521:25:7" + "src": "2601:25:7" } ] }, - "documentation": "@dev Internal implementation that lifts the paused state.", - "id": 2498, + "documentation": { + "id": 2591, + "nodeType": "StructuredDocumentation", + "src": "2454:61:7", + "text": "@dev Internal implementation that lifts the paused state." + }, + "functionSelector": "fc8234cb", + "id": 2606, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2486, + "id": 2594, "modifierName": { - "argumentTypes": null, - "id": 2485, + "id": 2593, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "2475:10:7", + "referencedDeclaration": 2558, + "src": "2555:10:7", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2475:10:7" + "src": "2555:10:7" } ], "name": "_unpause", "nodeType": "FunctionDefinition", "parameters": { - "id": 2484, + "id": 2592, "nodeType": "ParameterList", "parameters": [], - "src": "2465:2:7" + "src": "2537:2:7" }, "returnParameters": { - "id": 2487, + "id": 2595, "nodeType": "ParameterList", "parameters": [], - "src": "2486:0:7" + "src": "2566:0:7" }, - "scope": 2499, - "src": "2448:105:7", + "scope": 2607, + "src": "2520:113:7", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": true, "visibility": "public" } ], - "scope": 2500, - "src": "786:1769:7" + "scope": 2608, + "src": "834:1801:7" } ], - "src": "0:2556:7" + "src": "40:2596:7" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.497Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.081Z", "devdoc": { - "details": "Contract module which allows children to implement an emergency stop mechanism (Circuir Breaker) that should be triggered by an authorized account. * This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of the inheritd contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place. * IMPORTANT: The inherited contract should override the methods {pause} and {unpause} to add validations regarding access control (onlyOraganizer, onlyJudge, or any other access control rule needded) to avoid the inherited contract being paused/unpaused by unauthorized parties.", + "details": "Contract module which allows children to implement an emergency stop mechanism (Circuir Breaker) that should be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of the inheritd contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place. IMPORTANT: The inherited contract should override the methods {pause} and {unpause} to add validations regarding access control (onlyOraganizer, onlyJudge, or any other access control rule needded) to avoid the inherited contract being paused/unpaused by unauthorized parties.", + "events": { + "Paused(address)": { + "details": "emitted when the pause is triggered." + }, + "Unpaused(address)": { + "details": "emitted when the pause is lifted." + } + }, + "kind": "dev", "methods": { "_unpause()": { "details": "Internal implementation that lifts the paused state." @@ -2122,7 +2186,9 @@ "details": "Initializes the contract in unpaused state." }, "isPaused()": { - "return": "{true} if the contract is paused; otherwise, {false}." + "returns": { + "_0": "{true} if the contract is paused; otherwise, {false}." + } }, "pause()": { "details": "Must be inherited to apply proper access control before calling internal implementation on {_pause()}." @@ -2130,9 +2196,11 @@ "unpause()": { "details": "Must be inherited to apply proper access control before calling internal implementation on {_unpause()}." } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "isPaused()": { "notice": "Returns if the contract is paused or not." @@ -2143,6 +2211,7 @@ "unpause()": { "notice": "Lifts the paused state." } - } + }, + "version": 1 } } diff --git a/build/contracts/PausableMock.json b/build/contracts/PausableMock.json index 08b1bb5..54ebd09 100644 --- a/build/contracts/PausableMock.json +++ b/build/contracts/PausableMock.json @@ -3,7 +3,6 @@ "abi": [ { "inputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, @@ -60,16 +59,13 @@ "type": "event" }, { - "constant": false, "inputs": [], "name": "_unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [ { "internalType": "address", @@ -79,12 +75,10 @@ ], "name": "addOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, "inputs": [ { "internalType": "address", @@ -100,12 +94,10 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": true, "inputs": [], "name": "isPaused", "outputs": [ @@ -115,288 +107,273 @@ "type": "bool" } ], - "payable": false, "stateMutability": "view", "type": "function" }, { - "constant": false, "inputs": [], "name": "renounceOrganizer", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "pause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "unpause", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "onlyWorksWhenNotPaused", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": false, "inputs": [], "name": "onlyWorksWhenPaused", "outputs": [], - "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"onlyWorksWhenNotPaused\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"onlyWorksWhenPaused\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"isPaused()\":{\"return\":\"{true} if the contract is paused; otherwise, {false}.\"}}},\"userdoc\":{\"methods\":{\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"}}}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol\":\"PausableMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x13c9c60ded6c062f523ae97e0ccce959b4445fb9350261ec676fcffa86f7cff0\",\"urls\":[\"bzz-raw://fe0a5cd6d67d4abbe45a965a57efb9fc3de00352f8e1345fdd6d24be6a372327\",\"dweb:/ipfs/Qma1rpyzs9xHQcqHSeXaDwM9ZCrwDdXZ74M62aoD4mBDEy\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol\":{\"keccak256\":\"0x01da696b3c1dd5b1ac25c507933ae2abec7a3520d6cf6732a99c94e5a2159b49\",\"urls\":[\"bzz-raw://c1564ac729f537339c9e7456dc55ef5c3e978f380bff7d4104bc5640687a1432\",\"dweb:/ipfs/QmcGgtZHXXK98quP8fXDhkTRAdLhYqE1ZtzwDVu4ENdXZk\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0e35454f69f874f4356b5b0aff68123f26773fbf514028d68b710ac553ee0910\",\"urls\":[\"bzz-raw://fea5d97d3592c0d0ebacb85802ed5e7bdc695c6d328bc128f0a725cb0a51e154\",\"dweb:/ipfs/QmRVkhYPrCRnkpxBonthuUzAQu9cnCxVNDZBuCwA98LzgB\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506000805460ff19169055338061008857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b61009a816001600160e01b036100a016565b50610214565b6100b88160016100ef60201b6105701790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b61010282826001600160e01b0361019316565b1561016e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806108bf6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61069c806102236000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063567ad86211610066578063567ad862146100ec5780638456cb59146100f4578063b187bd26146100fc578063e4725f0214610104578063fc8234cb1461012a57610093565b806339e36e61146100985780633f33d08c146100a25780633f4ba83a146100aa57806341676f15146100b2575b600080fd5b6100a0610132565b005b6100a0610181565b6100a06101d1565b6100d8600480360360208110156100c857600080fd5b50356001600160a01b031661021d565b604080519115158252519081900360200190f35b6100a0610236565b6100a061023f565b6100d861028b565b6100a06004803603602081101561011a57600080fd5b50356001600160a01b0316610294565b6100a06102e4565b60005460ff161561017f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b565b60005460ff1661017f576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6101da3361021d565b6102155760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b61017f610373565b600061023060018363ffffffff61037b16565b92915050565b61017f336103e2565b6102483361021d565b6102835760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b61017f61042a565b60005460ff1690565b61029d3361021d565b6102d85760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b6102e181610432565b50565b60005460ff16610334576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6000805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b61017f6102e4565b60006001600160a01b0382166103c25760405162461bcd60e51b81526004018080602001828103825260228152602001806106466022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6103f360018263ffffffff61047a16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61017f6104e1565b61044360018263ffffffff61057016565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b610484828261037b565b6104bf5760405162461bcd60e51b81526004018080602001828103825260218152602001806106256021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60005460ff161561052e576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6000805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b61057a828261037b565b156105cc576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158204c65cb99d223de13c21b2c78ed6e673c0640f8816f46455e11261c0a9e934c1564736f6c634300050c0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063567ad86211610066578063567ad862146100ec5780638456cb59146100f4578063b187bd26146100fc578063e4725f0214610104578063fc8234cb1461012a57610093565b806339e36e61146100985780633f33d08c146100a25780633f4ba83a146100aa57806341676f15146100b2575b600080fd5b6100a0610132565b005b6100a0610181565b6100a06101d1565b6100d8600480360360208110156100c857600080fd5b50356001600160a01b031661021d565b604080519115158252519081900360200190f35b6100a0610236565b6100a061023f565b6100d861028b565b6100a06004803603602081101561011a57600080fd5b50356001600160a01b0316610294565b6100a06102e4565b60005460ff161561017f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b565b60005460ff1661017f576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6101da3361021d565b6102155760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b61017f610373565b600061023060018363ffffffff61037b16565b92915050565b61017f336103e2565b6102483361021d565b6102835760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b61017f61042a565b60005460ff1690565b61029d3361021d565b6102d85760405162461bcd60e51b81526004018080602001828103825260338152602001806105f26033913960400191505060405180910390fd5b6102e181610432565b50565b60005460ff16610334576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6000805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b61017f6102e4565b60006001600160a01b0382166103c25760405162461bcd60e51b81526004018080602001828103825260228152602001806106466022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6103f360018263ffffffff61047a16565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61017f6104e1565b61044360018263ffffffff61057016565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b610484828261037b565b6104bf5760405162461bcd60e51b81526004018080602001828103825260218152602001806106256021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60005460ff161561052e576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6000805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b61057a828261037b565b156105cc576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a265627a7a723158204c65cb99d223de13c21b2c78ed6e673c0640f8816f46455e11261c0a9e934c1564736f6c634300050c0032", - "sourceMap": "128:517:16:-;;;183:88;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1108:5:7;1098:15;;-1:-1:-1;;1098:15:7;;;229:10:16;1889:30:22;1881:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1954:31;1968:16;-1:-1:-1;;;;;1954:13:22;:31;:::i;:::-;1824:168;128:517:16;;2455:128:22;2514:24;2530:7;2514:11;:15;;;;;;:24;;;;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;260:175:24:-;337:18;341:4;347:7;-1:-1:-1;;;;;337:3:24;:18;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o;779:200::-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;128:517:16:-;;;;;;;", - "deployedSourceMap": "128:517:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;128:517:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:107;;;:::i;:::-;;542:101;;;:::i;351:72::-;;;:::i;2144:113:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2144:113:22;-1:-1:-1;;;;;2144:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;2368:81;;;:::i;277:68:16:-;;;:::i;1271:78:7:-;;;:::i;2263:99:22:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2263:99:22;-1:-1:-1;;;;;2263:99:22;;:::i;2448:105:7:-;;;:::i;429:107:16:-;1487:7:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;429:107:16:o;542:101::-;1665:7:7;;;;1657:42;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;;;351:72:16;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;401:15:16;:13;:15::i;2144:113:22:-;2203:4;2226:24;:11;2242:7;2226:24;:15;:24;:::i;:::-;2219:31;2144:113;-1:-1:-1;;2144:113:22:o;2368:81::-;2414:28;2431:10;2414:16;:28::i;277:68:16:-;2041:23:22;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;325:13:16;:11;:13::i;1271:78:7:-;1312:4;1335:7;;;1271:78;:::o;2263:99:22:-;2041:23;2053:10;2041:11;:23::i;:::-;2033:87;;;;-1:-1:-1;;;2033:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2333:22;2347:7;2333:13;:22::i;:::-;2263:99;:::o;2448:105:7:-;1665:7;;;;1657:42;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;-1:-1:-1;;;1657:42:7;;;;;;;;;;;;;;;2506:5;2496:15;;-1:-1:-1;;2496:15:7;;;2526:20;;;2535:10;2526:20;;;;;;;;;;;;;2448:105::o;2143:53::-;2179:10;:8;:10::i;779:200:24:-;851:4;-1:-1:-1;;;;;875:21:24;;867:68;;;;-1:-1:-1;;;867:68:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:24;:11;:20;;;;;;;;;;;;;;;779:200::o;2589:136:22:-;2651:27;:11;2670:7;2651:27;:18;:27;:::i;:::-;2693:25;;-1:-1:-1;;;;;2693:25:22;;;;;;;;2589:136;:::o;1906:49:7:-;1940:8;:6;:8::i;2455:128:22:-;2514:24;:11;2530:7;2514:24;:15;:24;:::i;:::-;2553:23;;-1:-1:-1;;;;;2553:23:22;;;;;;;;2455:128;:::o;510:180:24:-;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;581:64:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:24;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:24;;;510:180::o;2271:105:7:-;1487:7;;;;1486:8;1478:39;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;-1:-1:-1;;;1478:39:7;;;;;;;;;;;;;;;2322:7;:14;;-1:-1:-1;;2322:14:7;2332:4;2322:14;;;2351:18;;;2358:10;2351:18;;;;;;;;;;;;;2271:105::o;260:175:24:-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;328:63:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:24;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:24;424:4;401:27;;;260:175::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../lifecycle/Pausable.sol\";\nimport \"../roles/OrganizerRole.sol\";\n\n// mock class using Pausable\ncontract PausableMock is Pausable, OrganizerRole {\n constructor() public Pausable() OrganizerRole(msg.sender) {\n // Do nothing.\n }\n\n function pause() public onlyOrganizer {\n super.pause();\n }\n\n function unpause() public onlyOrganizer {\n super.unpause();\n }\n\n function onlyWorksWhenNotPaused() external whenNotPaused {\n // Do nothing. Just tests modifier\n }\n\n function onlyWorksWhenPaused() external whenPaused {\n // Do nothing. Just tests modifier\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OrganizerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isOrganizer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyWorksWhenNotPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onlyWorksWhenPaused\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOrganizer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"_unpause()\":{\"details\":\"Internal implementation that lifts the paused state.\"},\"isPaused()\":{\"returns\":{\"_0\":\"{true} if the contract is paused; otherwise, {false}.\"}},\"pause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_pause()}.\"},\"unpause()\":{\"details\":\"Must be inherited to apply proper access control before calling internal implementation on {_unpause()}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"isPaused()\":{\"notice\":\"Returns if the contract is paused or not.\"},\"pause()\":{\"notice\":\"Triggers the paused state.\"},\"unpause()\":{\"notice\":\"Lifts the paused state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol\":\"PausableMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0xe658c5869875103432729fd020763ede0557d94848fe421aa140050cfad0215c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f8cc47d690ed64cf8780b26b9d25cd945004831b1ade3be565e47b61d070bee\",\"dweb:/ipfs/QmZACTXi1S92e1tF8tXWi5oWKfptjwMTfDyRcJXDPRLUcZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol\":{\"keccak256\":\"0x48778b7793c04d62f50298b0102a2829bf5da1f9a021cfa24d65568a9ff8d5d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9aaeaf231a52db0013a291ff2316c69caa440141d8ebff116feaf4e6b540c9c3\",\"dweb:/ipfs/QmP7RavhjaSmoXci79tBHXXyFzDzsJp6f1LXV2i4rSbq8b\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol\":{\"keccak256\":\"0x0c17393f30884f60b569af8fa1b984136bff5cf02514e591a4f9dcb6037e8820\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f9b90fa964b5298679ec55ac6a385e0c0d1a47943b2dc8f702f936ffc86b3073\",\"dweb:/ipfs/QmWoGAkt4iqkX9oD2gFo9ncPDcJga6u8PpK3SZDYpwGgS7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506000805460ff19169055338061006e576040805162461bcd60e51b815260206004820152601460248201527f496e76616c6964207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b6100778161007d565b506101b4565b6100958160016100cc60201b61036d1790919060201c565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6100d6828261014d565b15610128576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b0382166101945760405162461bcd60e51b815260040180806020018281038252602281526020018061084e6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b61068b806101c36000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063567ad86211610066578063567ad862146100ec5780638456cb59146100f4578063b187bd26146100fc578063e4725f0214610104578063fc8234cb1461012a57610093565b806339e36e61146100985780633f33d08c146100a25780633f4ba83a146100aa57806341676f15146100b2575b600080fd5b6100a0610132565b005b6100a0610181565b6100a06101d1565b6100d8600480360360208110156100c857600080fd5b50356001600160a01b031661021d565b604080519115158252519081900360200190f35b6100a0610230565b6100a0610239565b6100d8610285565b6100a06004803603602081101561011a57600080fd5b50356001600160a01b031661028e565b6100a06102de565b60005460ff161561017f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b565b60005460ff1661017f576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6101da3361021d565b6102155760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b61017f6103ee565b600061022a6001836103f6565b92915050565b61017f3361045d565b6102423361021d565b61027d5760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b61017f61049f565b60005460ff1690565b6102973361021d565b6102d25760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b6102db816104a7565b50565b60005460ff1661032e576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6000805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b61037782826103f6565b156103c9576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61017f6102de565b60006001600160a01b03821661043d5760405162461bcd60e51b81526004018080602001828103825260228152602001806106346022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6104686001826104e9565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61017f610550565b6104b260018261036d565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6104f382826103f6565b61052e5760405162461bcd60e51b81526004018080602001828103825260218152602001806106136021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60005460ff161561059d576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6000805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a156fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212200c08051f91db2c0959cbdbc5be6fe8833882a3cbaf969bdd2cd62c989c0bc10964736f6c63430007060033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063567ad86211610066578063567ad862146100ec5780638456cb59146100f4578063b187bd26146100fc578063e4725f0214610104578063fc8234cb1461012a57610093565b806339e36e61146100985780633f33d08c146100a25780633f4ba83a146100aa57806341676f15146100b2575b600080fd5b6100a0610132565b005b6100a0610181565b6100a06101d1565b6100d8600480360360208110156100c857600080fd5b50356001600160a01b031661021d565b604080519115158252519081900360200190f35b6100a0610230565b6100a0610239565b6100d8610285565b6100a06004803603602081101561011a57600080fd5b50356001600160a01b031661028e565b6100a06102de565b60005460ff161561017f576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b565b60005460ff1661017f576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6101da3361021d565b6102155760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b61017f6103ee565b600061022a6001836103f6565b92915050565b61017f3361045d565b6102423361021d565b61027d5760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b61017f61049f565b60005460ff1690565b6102973361021d565b6102d25760405162461bcd60e51b81526004018080602001828103825260338152602001806105e06033913960400191505060405180910390fd5b6102db816104a7565b50565b60005460ff1661032e576040805162461bcd60e51b815260206004820152601660248201527510dbdb9d1c9858dd081a5cc81b9bdd081c185d5cd95960521b604482015290519081900360640190fd5b6000805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b61037782826103f6565b156103c9576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b61017f6102de565b60006001600160a01b03821661043d5760405162461bcd60e51b81526004018080602001828103825260228152602001806106346022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b6104686001826104e9565b6040516001600160a01b038216907fc459bd414676a5877fcf10a0d73ecf7e1f672a339650b03e628c4046534300e390600090a250565b61017f610550565b6104b260018261036d565b6040516001600160a01b038216907f37e96fc6762bae414e69ea6e2490e63bc46f2a1335de0f6b91f49cf808829bcf90600090a250565b6104f382826103f6565b61052e5760405162461bcd60e51b81526004018080602001828103825260218152602001806106136021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60005460ff161561059d576040805162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b604482015290519081900360640190fd5b6000805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a156fe4f7267616e697a6572526f6c653a2063616c6c657220646f6573206e6f742068617665204f7267616e697a657220526f6c652e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373a26469706673582212200c08051f91db2c0959cbdbc5be6fe8833882a3cbaf969bdd2cd62c989c0bc10964736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "176:528:16:-:0;;;231:81;;;;;;;;;-1:-1:-1;1156:5:7;1146:15;;-1:-1:-1;;1146:15:7;;;270:10:16;748:30:22;740:63;;;;;-1:-1:-1;;;740:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;813:31;827:16;813:13;:31::i;:::-;692:159;176:528:16;;1314:136:22;1381:24;1397:7;1381:11;:15;;;;;;:24;;;;:::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;942:200::-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;176:528:16:-;;;;;;;", + "deployedSourceMap": "176:528:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:107;;;:::i;:::-;;601:101;;;:::i;401:81::-;;;:::i;1003:113:22:-;;;;;;;;;;;;;;;;-1:-1:-1;1003:113:22;-1:-1:-1;;;;;1003:113:22;;:::i;:::-;;;;;;;;;;;;;;;;;;1227:81;;;:::i;318:77:16:-;;;:::i;1319:78:7:-;;;:::i;1122:99:22:-;;;;;;;;;;;;;;;;-1:-1:-1;1122:99:22;-1:-1:-1;;;;;1122:99:22;;:::i;2520:113:7:-;;;:::i;488:107:16:-;1535:7:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;488:107:16:o;601:101::-;1713:7:7;;;;1705:42;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;;;401:81:16;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:15:16::1;:13;:15::i;1003:113:22:-:0;1062:4;1085:24;:11;1101:7;1085:15;:24::i;:::-;1078:31;1003:113;-1:-1:-1;;1003:113:22:o;1227:81::-;1273:28;1290:10;1273:16;:28::i;318:77:16:-;900:23:22;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;375:13:16::1;:11;:13::i;1319:78:7:-:0;1360:4;1383:7;;;1319:78;:::o;1122:99:22:-;900:23;912:10;900:11;:23::i;:::-;892:87;;;;-1:-1:-1;;;892:87:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:22:::1;1206:7;1192:13;:22::i;:::-;1122:99:::0;:::o;2520:113:7:-;1713:7;;;;1705:42;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;-1:-1:-1;;;1705:42:7;;;;;;;;;;;;;;;2586:5:::1;2576:15:::0;;-1:-1:-1;;2576:15:7::1;::::0;;2606:20:::1;::::0;;2615:10:::1;2606:20:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2520:113::o:0;423:175:23:-;500:18;504:4;510:7;500:3;:18::i;:::-;499:19;491:63;;;;;-1:-1:-1;;;491:63:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;564:20:23;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;564:27:23;587:4;564:27;;;423:175::o;2199:61:7:-;2243:10;:8;:10::i;942:200:23:-;1014:4;-1:-1:-1;;;;;1038:21:23;;1030:68;;;;-1:-1:-1;;;1030:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1115:20:23;:11;:20;;;;;;;;;;;;;;;942:200::o;1456:144:22:-;1526:27;:11;1545:7;1526:18;:27::i;:::-;1568:25;;-1:-1:-1;;;;;1568:25:22;;;;;;;;1456:144;:::o;1954:57:7:-;1996:8;:6;:8::i;1314:136:22:-;1381:24;:11;1397:7;1381:15;:24::i;:::-;1420:23;;-1:-1:-1;;;;;1420:23:22;;;;;;;;1314:136;:::o;673:180:23:-;752:18;756:4;762:7;752:3;:18::i;:::-;744:64;;;;-1:-1:-1;;;744:64:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;818:20:23;841:5;818:20;;;;;;;;;;;:28;;-1:-1:-1;;818:28:23;;;673:180::o;2335:113:7:-;1535:7;;;;1534:8;1526:39;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;-1:-1:-1;;;1526:39:7;;;;;;;;;;;;;;;2394:7:::1;:14:::0;;-1:-1:-1;;2394:14:7::1;2404:4;2394:14;::::0;;2423:18:::1;::::0;;2430:10:::1;2423:18:::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;2335:113::o:0", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"../lifecycle/Pausable.sol\";\nimport \"../roles/OrganizerRole.sol\";\n\n// mock class using Pausable\ncontract PausableMock is Pausable, OrganizerRole {\n constructor() Pausable() OrganizerRole(msg.sender) {\n // Do nothing.\n }\n\n function pause() public onlyOrganizer override {\n super.pause();\n }\n\n function unpause() public onlyOrganizer override {\n super.unpause();\n }\n\n function onlyWorksWhenNotPaused() external whenNotPaused {\n // Do nothing. Just tests modifier\n }\n\n function onlyWorksWhenPaused() external whenPaused {\n // Do nothing. Just tests modifier\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol", "exportedSymbols": { - "PausableMock": [2863] + "OrganizerRole": [3532], + "Pausable": [2607], + "PausableMock": [2979], + "Roles": [3618] }, - "id": 2864, + "id": 2980, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2812, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2926, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:16" + "src": "40:31:16" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "file": "../lifecycle/Pausable.sol", - "id": 2813, + "id": 2927, "nodeType": "ImportDirective", - "scope": 2864, - "sourceUnit": 2500, - "src": "25:35:16", + "scope": 2980, + "sourceUnit": 2608, + "src": "73:35:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 2814, + "id": 2928, "nodeType": "ImportDirective", - "scope": 2864, - "sourceUnit": 3402, - "src": "61:36:16", + "scope": 2980, + "sourceUnit": 3533, + "src": "109:36:16", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2815, + "id": 2929, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2499, - "src": "153:8:16", + "referencedDeclaration": 2607, + "src": "201:8:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$2499", + "typeIdentifier": "t_contract$_Pausable_$2607", "typeString": "contract Pausable" } }, - "id": 2816, + "id": 2930, "nodeType": "InheritanceSpecifier", - "src": "153:8:16" + "src": "201:8:16" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2817, + "id": 2931, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "163:13:16", + "referencedDeclaration": 3532, + "src": "211:13:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 2818, + "id": 2932, "nodeType": "InheritanceSpecifier", - "src": "163:13:16" + "src": "211:13:16" } ], - "contractDependencies": [2499, 3401], + "contractDependencies": [2607, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2863, - "linearizedBaseContracts": [2863, 3401, 2499], + "id": 2979, + "linearizedBaseContracts": [2979, 3532, 2607], "name": "PausableMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2827, + "id": 2941, "nodeType": "Block", - "src": "241:30:16", + "src": "282:30:16", "statements": [] }, - "documentation": null, - "id": 2828, + "id": 2942, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2821, + "id": 2935, "modifierName": { - "argumentTypes": null, - "id": 2820, + "id": 2934, "name": "Pausable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "204:8:16", + "referencedDeclaration": 2607, + "src": "245:8:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pausable_$2499_$", + "typeIdentifier": "t_type$_t_contract$_Pausable_$2607_$", "typeString": "type(contract Pausable)" } }, "nodeType": "ModifierInvocation", - "src": "204:10:16" + "src": "245:10:16" }, { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2823, + "id": 2937, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "229:3:16", + "referencedDeclaration": 4294967281, + "src": "270:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2824, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "229:10:16", + "src": "270:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2825, + "id": 2939, "modifierName": { - "argumentTypes": null, - "id": 2822, + "id": 2936, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "215:13:16", + "referencedDeclaration": 3532, + "src": "256:13:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "215:25:16" + "src": "256:25:16" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 2933, "nodeType": "ParameterList", "parameters": [], - "src": "194:2:16" + "src": "242:2:16" }, "returnParameters": { - "id": 2826, + "id": 2940, "nodeType": "ParameterList", "parameters": [], - "src": "241:0:16" + "src": "282:0:16" }, - "scope": 2863, - "src": "183:88:16", + "scope": 2979, + "src": "231:81:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2566], "body": { - "id": 2838, + "id": 2953, "nodeType": "Block", - "src": "315:30:16", + "src": "365:30:16", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 2833, + "id": 2948, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4293, - "src": "325:5:16", + "referencedDeclaration": 4294967271, + "src": "375:5:16", "typeDescriptions": { - "typeIdentifier": "t_super$_PausableMock_$2863", + "typeIdentifier": "t_super$_PausableMock_$2979", "typeString": "contract super PausableMock" } }, - "id": 2835, + "id": 2950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pause", "nodeType": "MemberAccess", - "referencedDeclaration": 2461, - "src": "325:11:16", + "referencedDeclaration": 2566, + "src": "375:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2836, + "id": 2951, "isConstant": false, "isLValue": false, "isPure": false, @@ -404,103 +381,107 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "325:13:16", + "src": "375:13:16", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2837, + "id": 2952, "nodeType": "ExpressionStatement", - "src": "325:13:16" + "src": "375:13:16" } ] }, - "documentation": null, - "id": 2839, + "functionSelector": "8456cb59", + "id": 2954, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2831, + "id": 2945, "modifierName": { - "argumentTypes": null, - "id": 2830, + "id": 2944, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "301:13:16", + "referencedDeclaration": 3465, + "src": "342:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "301:13:16" + "src": "342:13:16" } ], "name": "pause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2946, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "356:8:16" + }, "parameters": { - "id": 2829, + "id": 2943, "nodeType": "ParameterList", "parameters": [], - "src": "291:2:16" + "src": "332:2:16" }, "returnParameters": { - "id": 2832, + "id": 2947, "nodeType": "ParameterList", "parameters": [], - "src": "315:0:16" + "src": "365:0:16" }, - "scope": 2863, - "src": "277:68:16", + "scope": 2979, + "src": "318:77:16", "stateMutability": "nonpayable", - "superFunction": 2461, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2574], "body": { - "id": 2849, + "id": 2965, "nodeType": "Block", - "src": "391:32:16", + "src": "450:32:16", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 2844, + "id": 2960, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4293, - "src": "401:5:16", + "referencedDeclaration": 4294967271, + "src": "460:5:16", "typeDescriptions": { - "typeIdentifier": "t_super$_PausableMock_$2863", + "typeIdentifier": "t_super$_PausableMock_$2979", "typeString": "contract super PausableMock" } }, - "id": 2846, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "unpause", "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "401:13:16", + "referencedDeclaration": 2574, + "src": "460:13:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2847, + "id": 2963, "isConstant": false, "isLValue": false, "isPure": false, @@ -508,399 +489,393 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "401:15:16", + "src": "460:15:16", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2848, + "id": 2964, "nodeType": "ExpressionStatement", - "src": "401:15:16" + "src": "460:15:16" } ] }, - "documentation": null, - "id": 2850, + "functionSelector": "3f4ba83a", + "id": 2966, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2842, + "id": 2957, "modifierName": { - "argumentTypes": null, - "id": 2841, + "id": 2956, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "377:13:16", + "referencedDeclaration": 3465, + "src": "427:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "377:13:16" + "src": "427:13:16" } ], "name": "unpause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2958, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "441:8:16" + }, "parameters": { - "id": 2840, + "id": 2955, "nodeType": "ParameterList", "parameters": [], - "src": "367:2:16" + "src": "417:2:16" }, "returnParameters": { - "id": 2843, + "id": 2959, "nodeType": "ParameterList", "parameters": [], - "src": "391:0:16" + "src": "450:0:16" }, - "scope": 2863, - "src": "351:72:16", + "scope": 2979, + "src": "401:81:16", "stateMutability": "nonpayable", - "superFunction": 2468, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2855, + "id": 2971, "nodeType": "Block", - "src": "486:50:16", + "src": "545:50:16", "statements": [] }, - "documentation": null, - "id": 2856, + "functionSelector": "39e36e61", + "id": 2972, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2853, + "id": 2969, "modifierName": { - "argumentTypes": null, - "id": 2852, + "id": 2968, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "472:13:16", + "referencedDeclaration": 2548, + "src": "531:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "472:13:16" + "src": "531:13:16" } ], "name": "onlyWorksWhenNotPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2851, + "id": 2967, "nodeType": "ParameterList", "parameters": [], - "src": "460:2:16" + "src": "519:2:16" }, "returnParameters": { - "id": 2854, + "id": 2970, "nodeType": "ParameterList", "parameters": [], - "src": "486:0:16" + "src": "545:0:16" }, - "scope": 2863, - "src": "429:107:16", + "scope": 2979, + "src": "488:107:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2861, + "id": 2977, "nodeType": "Block", - "src": "593:50:16", + "src": "652:50:16", "statements": [] }, - "documentation": null, - "id": 2862, + "functionSelector": "3f33d08c", + "id": 2978, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2859, + "id": 2975, "modifierName": { - "argumentTypes": null, - "id": 2858, + "id": 2974, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "582:10:16", + "referencedDeclaration": 2558, + "src": "641:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "582:10:16" + "src": "641:10:16" } ], "name": "onlyWorksWhenPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2857, + "id": 2973, "nodeType": "ParameterList", "parameters": [], - "src": "570:2:16" + "src": "629:2:16" }, "returnParameters": { - "id": 2860, + "id": 2976, "nodeType": "ParameterList", "parameters": [], - "src": "593:0:16" + "src": "652:0:16" }, - "scope": 2863, - "src": "542:101:16", + "scope": 2979, + "src": "601:101:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2864, - "src": "128:517:16" + "scope": 2980, + "src": "176:528:16" } ], - "src": "0:646:16" + "src": "40:665:16" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/mocks/PausableMock.sol", "exportedSymbols": { - "PausableMock": [2863] + "OrganizerRole": [3532], + "Pausable": [2607], + "PausableMock": [2979], + "Roles": [3618] }, - "id": 2864, + "id": 2980, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2812, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2926, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:16" + "src": "40:31:16" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/lifecycle/Pausable.sol", "file": "../lifecycle/Pausable.sol", - "id": 2813, + "id": 2927, "nodeType": "ImportDirective", - "scope": 2864, - "sourceUnit": 2500, - "src": "25:35:16", + "scope": 2980, + "sourceUnit": 2608, + "src": "73:35:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/OrganizerRole.sol", "file": "../roles/OrganizerRole.sol", - "id": 2814, + "id": 2928, "nodeType": "ImportDirective", - "scope": 2864, - "sourceUnit": 3402, - "src": "61:36:16", + "scope": 2980, + "sourceUnit": 3533, + "src": "109:36:16", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2815, + "id": 2929, "name": "Pausable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2499, - "src": "153:8:16", + "referencedDeclaration": 2607, + "src": "201:8:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$2499", + "typeIdentifier": "t_contract$_Pausable_$2607", "typeString": "contract Pausable" } }, - "id": 2816, + "id": 2930, "nodeType": "InheritanceSpecifier", - "src": "153:8:16" + "src": "201:8:16" }, { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2817, + "id": 2931, "name": "OrganizerRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3401, - "src": "163:13:16", + "referencedDeclaration": 3532, + "src": "211:13:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_OrganizerRole_$3401", + "typeIdentifier": "t_contract$_OrganizerRole_$3532", "typeString": "contract OrganizerRole" } }, - "id": 2818, + "id": 2932, "nodeType": "InheritanceSpecifier", - "src": "163:13:16" + "src": "211:13:16" } ], - "contractDependencies": [2499, 3401], + "contractDependencies": [2607, 3532], "contractKind": "contract", - "documentation": null, "fullyImplemented": true, - "id": 2863, - "linearizedBaseContracts": [2863, 3401, 2499], + "id": 2979, + "linearizedBaseContracts": [2979, 3532, 2607], "name": "PausableMock", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 2827, + "id": 2941, "nodeType": "Block", - "src": "241:30:16", + "src": "282:30:16", "statements": [] }, - "documentation": null, - "id": 2828, + "id": 2942, "implemented": true, "kind": "constructor", "modifiers": [ { "arguments": [], - "id": 2821, + "id": 2935, "modifierName": { - "argumentTypes": null, - "id": 2820, + "id": 2934, "name": "Pausable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "204:8:16", + "referencedDeclaration": 2607, + "src": "245:8:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Pausable_$2499_$", + "typeIdentifier": "t_type$_t_contract$_Pausable_$2607_$", "typeString": "type(contract Pausable)" } }, "nodeType": "ModifierInvocation", - "src": "204:10:16" + "src": "245:10:16" }, { "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2823, + "id": 2937, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "229:3:16", + "referencedDeclaration": 4294967281, + "src": "270:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2824, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "229:10:16", + "src": "270:10:16", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], - "id": 2825, + "id": 2939, "modifierName": { - "argumentTypes": null, - "id": 2822, + "id": 2936, "name": "OrganizerRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "215:13:16", + "referencedDeclaration": 3532, + "src": "256:13:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3401_$", + "typeIdentifier": "t_type$_t_contract$_OrganizerRole_$3532_$", "typeString": "type(contract OrganizerRole)" } }, "nodeType": "ModifierInvocation", - "src": "215:25:16" + "src": "256:25:16" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 2819, + "id": 2933, "nodeType": "ParameterList", "parameters": [], - "src": "194:2:16" + "src": "242:2:16" }, "returnParameters": { - "id": 2826, + "id": 2940, "nodeType": "ParameterList", "parameters": [], - "src": "241:0:16" + "src": "282:0:16" }, - "scope": 2863, - "src": "183:88:16", + "scope": 2979, + "src": "231:81:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2566], "body": { - "id": 2838, + "id": 2953, "nodeType": "Block", - "src": "315:30:16", + "src": "365:30:16", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 2833, + "id": 2948, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4293, - "src": "325:5:16", + "referencedDeclaration": 4294967271, + "src": "375:5:16", "typeDescriptions": { - "typeIdentifier": "t_super$_PausableMock_$2863", + "typeIdentifier": "t_super$_PausableMock_$2979", "typeString": "contract super PausableMock" } }, - "id": 2835, + "id": 2950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pause", "nodeType": "MemberAccess", - "referencedDeclaration": 2461, - "src": "325:11:16", + "referencedDeclaration": 2566, + "src": "375:11:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2836, + "id": 2951, "isConstant": false, "isLValue": false, "isPure": false, @@ -908,103 +883,107 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "325:13:16", + "src": "375:13:16", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2837, + "id": 2952, "nodeType": "ExpressionStatement", - "src": "325:13:16" + "src": "375:13:16" } ] }, - "documentation": null, - "id": 2839, + "functionSelector": "8456cb59", + "id": 2954, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2831, + "id": 2945, "modifierName": { - "argumentTypes": null, - "id": 2830, + "id": 2944, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "301:13:16", + "referencedDeclaration": 3465, + "src": "342:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "301:13:16" + "src": "342:13:16" } ], "name": "pause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2946, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "356:8:16" + }, "parameters": { - "id": 2829, + "id": 2943, "nodeType": "ParameterList", "parameters": [], - "src": "291:2:16" + "src": "332:2:16" }, "returnParameters": { - "id": 2832, + "id": 2947, "nodeType": "ParameterList", "parameters": [], - "src": "315:0:16" + "src": "365:0:16" }, - "scope": 2863, - "src": "277:68:16", + "scope": 2979, + "src": "318:77:16", "stateMutability": "nonpayable", - "superFunction": 2461, + "virtual": false, "visibility": "public" }, { + "baseFunctions": [2574], "body": { - "id": 2849, + "id": 2965, "nodeType": "Block", - "src": "391:32:16", + "src": "450:32:16", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { - "argumentTypes": null, - "id": 2844, + "id": 2960, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4293, - "src": "401:5:16", + "referencedDeclaration": 4294967271, + "src": "460:5:16", "typeDescriptions": { - "typeIdentifier": "t_super$_PausableMock_$2863", + "typeIdentifier": "t_super$_PausableMock_$2979", "typeString": "contract super PausableMock" } }, - "id": 2846, + "id": 2962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "unpause", "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "401:13:16", + "referencedDeclaration": 2574, + "src": "460:13:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2847, + "id": 2963, "isConstant": false, "isLValue": false, "isPure": false, @@ -1012,196 +991,215 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "401:15:16", + "src": "460:15:16", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2848, + "id": 2964, "nodeType": "ExpressionStatement", - "src": "401:15:16" + "src": "460:15:16" } ] }, - "documentation": null, - "id": 2850, + "functionSelector": "3f4ba83a", + "id": 2966, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2842, + "id": 2957, "modifierName": { - "argumentTypes": null, - "id": 2841, + "id": 2956, "name": "onlyOrganizer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "377:13:16", + "referencedDeclaration": 3465, + "src": "427:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "377:13:16" + "src": "427:13:16" } ], "name": "unpause", "nodeType": "FunctionDefinition", + "overrides": { + "id": 2958, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "441:8:16" + }, "parameters": { - "id": 2840, + "id": 2955, "nodeType": "ParameterList", "parameters": [], - "src": "367:2:16" + "src": "417:2:16" }, "returnParameters": { - "id": 2843, + "id": 2959, "nodeType": "ParameterList", "parameters": [], - "src": "391:0:16" + "src": "450:0:16" }, - "scope": 2863, - "src": "351:72:16", + "scope": 2979, + "src": "401:81:16", "stateMutability": "nonpayable", - "superFunction": 2468, + "virtual": false, "visibility": "public" }, { "body": { - "id": 2855, + "id": 2971, "nodeType": "Block", - "src": "486:50:16", + "src": "545:50:16", "statements": [] }, - "documentation": null, - "id": 2856, + "functionSelector": "39e36e61", + "id": 2972, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2853, + "id": 2969, "modifierName": { - "argumentTypes": null, - "id": 2852, + "id": 2968, "name": "whenNotPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2445, - "src": "472:13:16", + "referencedDeclaration": 2548, + "src": "531:13:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "472:13:16" + "src": "531:13:16" } ], "name": "onlyWorksWhenNotPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2851, + "id": 2967, "nodeType": "ParameterList", "parameters": [], - "src": "460:2:16" + "src": "519:2:16" }, "returnParameters": { - "id": 2854, + "id": 2970, "nodeType": "ParameterList", "parameters": [], - "src": "486:0:16" + "src": "545:0:16" }, - "scope": 2863, - "src": "429:107:16", + "scope": 2979, + "src": "488:107:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" }, { "body": { - "id": 2861, + "id": 2977, "nodeType": "Block", - "src": "593:50:16", + "src": "652:50:16", "statements": [] }, - "documentation": null, - "id": 2862, + "functionSelector": "3f33d08c", + "id": 2978, "implemented": true, "kind": "function", "modifiers": [ { - "arguments": null, - "id": 2859, + "id": 2975, "modifierName": { - "argumentTypes": null, - "id": 2858, + "id": 2974, "name": "whenPaused", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "582:10:16", + "referencedDeclaration": 2558, + "src": "641:10:16", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "582:10:16" + "src": "641:10:16" } ], "name": "onlyWorksWhenPaused", "nodeType": "FunctionDefinition", "parameters": { - "id": 2857, + "id": 2973, "nodeType": "ParameterList", "parameters": [], - "src": "570:2:16" + "src": "629:2:16" }, "returnParameters": { - "id": 2860, + "id": 2976, "nodeType": "ParameterList", "parameters": [], - "src": "593:0:16" + "src": "652:0:16" }, - "scope": 2863, - "src": "542:101:16", + "scope": 2979, + "src": "601:101:16", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "external" } ], - "scope": 2864, - "src": "128:517:16" + "scope": 2980, + "src": "176:528:16" } ], - "src": "0:646:16" + "src": "40:665:16" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.517Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.113Z", "devdoc": { + "kind": "dev", "methods": { "_unpause()": { "details": "Internal implementation that lifts the paused state." }, "isPaused()": { - "return": "{true} if the contract is paused; otherwise, {false}." + "returns": { + "_0": "{true} if the contract is paused; otherwise, {false}." + } + }, + "pause()": { + "details": "Must be inherited to apply proper access control before calling internal implementation on {_pause()}." + }, + "unpause()": { + "details": "Must be inherited to apply proper access control before calling internal implementation on {_unpause()}." } - } + }, + "version": 1 }, "userdoc": { + "kind": "user", "methods": { "isPaused()": { "notice": "Returns if the contract is paused or not." + }, + "pause()": { + "notice": "Triggers the paused state." + }, + "unpause()": { + "notice": "Lifts the paused state." } - } + }, + "version": 1 } } diff --git a/build/contracts/Payable.json b/build/contracts/Payable.json index cde74df..bb6cf6a 100644 --- a/build/contracts/Payable.json +++ b/build/contracts/Payable.json @@ -27,95 +27,108 @@ "type": "event" }, { - "constant": false, "inputs": [], "name": "deposit", "outputs": [], - "payable": true, "stateMutability": "payable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"}},\"notice\":\"A contract that can receive funds/deposits.\"}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":\"Payable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0x49e6a16932e8828c2ece3b77a4c7591154387269fd2a903a0604910e338a9193\",\"urls\":[\"bzz-raw://84819cf6e31a93fc0df8ec71b4ce244b011f9a63add21605aa1d60c5eaaccebd\",\"dweb:/ipfs/QmWWJhsqU7ZxUzBoegMY4YZYjWysua69Gyn67okU1UvfX7\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0x7de3e12a72891731a3f10f0fccb8d321dfef6efdaa35566abb61025f6615b868\",\"urls\":[\"bzz-raw://874b6845575ee70b26dde0287396a15778f67fb33959e40908deda42377be6af\",\"dweb:/ipfs/Qmd4akc8NWL6Ku24kbpd12RyCVFn9zMjctNExYK2Qs1zm9\"]}},\"version\":1}", - "bytecode": "0x6080604052348015600f57600080fd5b5060f58061001e6000396000f3fe608060405260043610601c5760003560e01c8063d0e30db0146021575b600080fd5b60276029565b005b6000341160665760405162461bcd60e51b815260040180806020018281038252602181526020018060a06021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a356fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030a265627a7a72315820b4c7f61b5d54ceb5d6eccbc54933fef0bed41cd4318670f7636d4cfe22a236e064736f6c634300050c0032", - "deployedBytecode": "0x608060405260043610601c5760003560e01c8063d0e30db0146021575b600080fd5b60276029565b005b6000341160665760405162461bcd60e51b815260040180806020018281038252602181526020018060a06021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a356fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030a265627a7a72315820b4c7f61b5d54ceb5d6eccbc54933fef0bed41cd4318670f7636d4cfe22a236e064736f6c634300050c0032", - "sourceMap": "107:405:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;107:405:18;;;;;;;", - "deployedSourceMap": "107:405:18:-;;;;;;;;;;;;;;;;;;;;;348:162;;;:::i;:::-;;;414:1;402:9;:13;394:59;;;;-1:-1:-1;;;394:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:35;;;488:9;468:35;;;;499:3;;476:10;;468:35;;;;;;;;;348:162::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"./IPayable.sol\";\n\n/// @notice A contract that can receive funds/deposits.\ncontract Payable is IPayable {\n /// @notice Event emitted when the contract receives a deposit.\n event Deposit(address indexed from, uint256 amount, uint256 indexed datetime);\n\n /// @notice Allows the contract to receive funds.\n function deposit() external payable {\n require(msg.value > 0, \"msg.value must be greather than 0\");\n emit Deposit(msg.sender, msg.value, now);\n }\n}\n", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"datetime\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"Deposit(address,uint256,uint256)\":{\"notice\":\"Event emitted when the contract receives a deposit.\"}},\"kind\":\"user\",\"methods\":{\"deposit()\":{\"notice\":\"Allows the contract to receive funds.\"}},\"notice\":\"A contract that can receive funds/deposits.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":\"Payable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol\":{\"keccak256\":\"0xda284e0ea3af452620000a3133e06e8bb2967c77bbea1555dbc1610eda3032b4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9594b85a4979a5acb339af4f9108435c70c7e45f45a1845ccb6ad3e1d96ef9ae\",\"dweb:/ipfs/QmetoPvij8DkdBhsXZhn9PPVXqhous5kergnVfX637YzkZ\"]},\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol\":{\"keccak256\":\"0xda9c92360a895c084591af056cd6d6c1b5892a8adc04d07c35561b508787293d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://17ec30af1c9853d300761b4a7742d2e695fcc8ad6712d39cfed9270cbdf901e4\",\"dweb:/ipfs/QmUHTVC4kSmR37aBgAkPsU6dMX39mEwHmDZtArqPEokBnk\"]}},\"version\":1}", + "bytecode": "0x6080604052348015600f57600080fd5b5060f68061001e6000396000f3fe608060405260043610601c5760003560e01c8063d0e30db0146021575b600080fd5b60276029565b005b6000341160665760405162461bcd60e51b815260040180806020018281038252602181526020018060a06021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a356fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030a2646970667358221220d880a11ec6df5ebcaf02e561ce4d66ebb1e6e9bbc17329c830d396cee8d3dab864736f6c63430007060033", + "deployedBytecode": "0x608060405260043610601c5760003560e01c8063d0e30db0146021575b600080fd5b60276029565b005b6000341160665760405162461bcd60e51b815260040180806020018281038252602181526020018060a06021913960400191505060405180910390fd5b604080513481529051429133917f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360200190a356fe6d73672e76616c7565206d757374206265206772656174686572207468616e2030a2646970667358221220d880a11ec6df5ebcaf02e561ce4d66ebb1e6e9bbc17329c830d396cee8d3dab864736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "155:426:18:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "155:426:18:-:0;;;;;;;;;;;;;;;;;;;;;396:183;;;:::i;:::-;;;471:1;459:9;:13;451:59;;;;-1:-1:-1;;;451:59:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:47;;;545:9;525:47;;;;556:15;;533:10;;525:47;;;;;;;;;396:183::o", + "source": "// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\nimport \"./IPayable.sol\";\n\n/// @notice A contract that can receive funds/deposits.\ncontract Payable is IPayable {\n /// @notice Event emitted when the contract receives a deposit.\n event Deposit(address indexed from, uint256 amount, uint256 indexed datetime);\n\n /// @notice Allows the contract to receive funds.\n function deposit() external payable override {\n require(msg.value > 0, \"msg.value must be greather than 0\");\n emit Deposit(msg.sender, msg.value, block.timestamp);\n }\n}\n", "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "ast": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "exportedSymbols": { - "Payable": [2903] + "IPayable": [2987], + "Payable": [3026] }, - "id": 2904, + "id": 3027, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2871, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2989, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "40:31:18" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol", "file": "./IPayable.sol", - "id": 2872, + "id": 2990, "nodeType": "ImportDirective", - "scope": 2904, - "sourceUnit": 2870, - "src": "25:24:18", + "scope": 3027, + "sourceUnit": 2988, + "src": "73:24:18", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2873, + "id": 2992, "name": "IPayable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2869, - "src": "127:8:18", + "referencedDeclaration": 2987, + "src": "175:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPayable_$2869", + "typeIdentifier": "t_contract$_IPayable_$2987", "typeString": "contract IPayable" } }, - "id": 2874, + "id": 2993, "nodeType": "InheritanceSpecifier", - "src": "127:8:18" + "src": "175:8:18" } ], - "contractDependencies": [2869], + "contractDependencies": [2987], "contractKind": "contract", - "documentation": "@notice A contract that can receive funds/deposits.", + "documentation": { + "id": 2991, + "nodeType": "StructuredDocumentation", + "src": "99:56:18", + "text": "@notice A contract that can receive funds/deposits." + }, "fullyImplemented": true, - "id": 2903, - "linearizedBaseContracts": [2903, 2869], + "id": 3026, + "linearizedBaseContracts": [3026, 2987], "name": "Payable", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "documentation": "@notice Event emitted when the contract receives a deposit.", - "id": 2882, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "190:63:18", + "text": "@notice Event emitted when the contract receives a deposit." + }, + "id": 3002, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { - "id": 2881, + "id": 3001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2876, + "id": 2996, "indexed": true, + "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "224:20:18", + "scope": 3002, + "src": "272:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -123,27 +136,27 @@ "typeString": "address" }, "typeName": { - "id": 2875, + "id": 2995, "name": "address", "nodeType": "ElementaryTypeName", - "src": "224:7:18", + "src": "272:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2878, + "id": 2998, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "246:14:18", + "scope": 3002, + "src": "294:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -151,26 +164,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2877, + "id": 2997, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "246:7:18", + "src": "294:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2880, + "id": 3000, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "262:24:18", + "scope": 3002, + "src": "310:24:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -178,68 +191,63 @@ "typeString": "uint256" }, "typeName": { - "id": 2879, + "id": 2999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "262:7:18", + "src": "310:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "223:64:18" + "src": "271:64:18" }, - "src": "210:78:18" + "src": "258:78:18" }, { + "baseFunctions": [2986], "body": { - "id": 2901, + "id": 3024, "nodeType": "Block", - "src": "384:126:18", + "src": "441:138:18", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2889, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2886, + "id": 3008, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "402:3:18", + "referencedDeclaration": 4294967281, + "src": "459:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2887, + "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "402:9:18", + "src": "459:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -248,41 +256,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2888, + "id": 3010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "414:1:18", - "subdenomination": null, + "src": "471:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "402:13:18", + "src": "459:13:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "6d73672e76616c7565206d757374206265206772656174686572207468616e2030", - "id": 2890, + "id": 3012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "417:35:18", - "subdenomination": null, + "src": "474:35:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_16c3d7a5a1997187cb2da5d62ace286c10f993dea2b8491bd5282f4dc35fc277", "typeString": "literal_string \"msg.value must be greather than 0\"" @@ -301,18 +305,18 @@ "typeString": "literal_string \"msg.value must be greather than 0\"" } ], - "id": 2885, + "id": 3007, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "394:7:18", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "451:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2891, + "id": 3013, "isConstant": false, "isLValue": false, "isPure": false, @@ -320,86 +324,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "394:59:18", + "src": "451:59:18", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2892, + "id": 3014, "nodeType": "ExpressionStatement", - "src": "394:59:18" + "src": "451:59:18" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2894, + "id": 3016, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "476:3:18", + "referencedDeclaration": 4294967281, + "src": "533:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2895, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "476:10:18", + "src": "533:10:18", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2896, + "id": 3018, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "488:3:18", + "referencedDeclaration": 4294967281, + "src": "545:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2897, + "id": 3019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "488:9:18", + "src": "545:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2898, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "499:3:18", + "expression": { + "id": 3020, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "556:5:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "556:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -421,18 +432,18 @@ "typeString": "uint256" } ], - "id": 2893, + "id": 3015, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2882, - "src": "468:7:18", + "referencedDeclaration": 3002, + "src": "525:7:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 2899, + "id": 3022, "isConstant": false, "isLValue": false, "isPure": false, @@ -440,123 +451,148 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "468:35:18", + "src": "525:47:18", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2900, + "id": 3023, "nodeType": "EmitStatement", - "src": "463:40:18" + "src": "520:52:18" } ] }, - "documentation": "@notice Allows the contract to receive funds.", - "id": 2902, + "documentation": { + "id": 3003, + "nodeType": "StructuredDocumentation", + "src": "342:49:18", + "text": "@notice Allows the contract to receive funds." + }, + "functionSelector": "d0e30db0", + "id": 3025, "implemented": true, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3005, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "432:8:18" + }, "parameters": { - "id": 2883, + "id": 3004, "nodeType": "ParameterList", "parameters": [], - "src": "364:2:18" + "src": "412:2:18" }, "returnParameters": { - "id": 2884, + "id": 3006, "nodeType": "ParameterList", "parameters": [], - "src": "384:0:18" + "src": "441:0:18" }, - "scope": 2903, - "src": "348:162:18", + "scope": 3026, + "src": "396:183:18", "stateMutability": "payable", - "superFunction": 2868, + "virtual": false, "visibility": "external" } ], - "scope": 2904, - "src": "107:405:18" + "scope": 3027, + "src": "155:426:18" } ], - "src": "0:513:18" + "src": "40:542:18" }, "legacyAST": { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/Payable.sol", "exportedSymbols": { - "Payable": [2903] + "IPayable": [2987], + "Payable": [3026] }, - "id": 2904, + "id": 3027, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 2871, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 2989, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:18" + "src": "40:31:18" }, { "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/payment/IPayable.sol", "file": "./IPayable.sol", - "id": 2872, + "id": 2990, "nodeType": "ImportDirective", - "scope": 2904, - "sourceUnit": 2870, - "src": "25:24:18", + "scope": 3027, + "sourceUnit": 2988, + "src": "73:24:18", "symbolAliases": [], "unitAlias": "" }, { + "abstract": false, "baseContracts": [ { - "arguments": null, "baseName": { - "contractScope": null, - "id": 2873, + "id": 2992, "name": "IPayable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2869, - "src": "127:8:18", + "referencedDeclaration": 2987, + "src": "175:8:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_IPayable_$2869", + "typeIdentifier": "t_contract$_IPayable_$2987", "typeString": "contract IPayable" } }, - "id": 2874, + "id": 2993, "nodeType": "InheritanceSpecifier", - "src": "127:8:18" + "src": "175:8:18" } ], - "contractDependencies": [2869], + "contractDependencies": [2987], "contractKind": "contract", - "documentation": "@notice A contract that can receive funds/deposits.", + "documentation": { + "id": 2991, + "nodeType": "StructuredDocumentation", + "src": "99:56:18", + "text": "@notice A contract that can receive funds/deposits." + }, "fullyImplemented": true, - "id": 2903, - "linearizedBaseContracts": [2903, 2869], + "id": 3026, + "linearizedBaseContracts": [3026, 2987], "name": "Payable", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "documentation": "@notice Event emitted when the contract receives a deposit.", - "id": 2882, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "190:63:18", + "text": "@notice Event emitted when the contract receives a deposit." + }, + "id": 3002, "name": "Deposit", "nodeType": "EventDefinition", "parameters": { - "id": 2881, + "id": 3001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2876, + "id": 2996, "indexed": true, + "mutability": "mutable", "name": "from", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "224:20:18", + "scope": 3002, + "src": "272:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -564,27 +600,27 @@ "typeString": "address" }, "typeName": { - "id": 2875, + "id": 2995, "name": "address", "nodeType": "ElementaryTypeName", - "src": "224:7:18", + "src": "272:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2878, + "id": 2998, "indexed": false, + "mutability": "mutable", "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "246:14:18", + "scope": 3002, + "src": "294:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -592,26 +628,26 @@ "typeString": "uint256" }, "typeName": { - "id": 2877, + "id": 2997, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "246:7:18", + "src": "294:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 2880, + "id": 3000, "indexed": true, + "mutability": "mutable", "name": "datetime", "nodeType": "VariableDeclaration", - "scope": 2882, - "src": "262:24:18", + "scope": 3002, + "src": "310:24:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -619,68 +655,63 @@ "typeString": "uint256" }, "typeName": { - "id": 2879, + "id": 2999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "262:7:18", + "src": "310:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "223:64:18" + "src": "271:64:18" }, - "src": "210:78:18" + "src": "258:78:18" }, { + "baseFunctions": [2986], "body": { - "id": 2901, + "id": 3024, "nodeType": "Block", - "src": "384:126:18", + "src": "441:138:18", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2889, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2886, + "id": 3008, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "402:3:18", + "referencedDeclaration": 4294967281, + "src": "459:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2887, + "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "402:9:18", + "src": "459:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -689,41 +720,37 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 2888, + "id": 3010, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "414:1:18", - "subdenomination": null, + "src": "471:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "402:13:18", + "src": "459:13:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "6d73672e76616c7565206d757374206265206772656174686572207468616e2030", - "id": 2890, + "id": 3012, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "417:35:18", - "subdenomination": null, + "src": "474:35:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_16c3d7a5a1997187cb2da5d62ace286c10f993dea2b8491bd5282f4dc35fc277", "typeString": "literal_string \"msg.value must be greather than 0\"" @@ -742,18 +769,18 @@ "typeString": "literal_string \"msg.value must be greather than 0\"" } ], - "id": 2885, + "id": 3007, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "394:7:18", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "451:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2891, + "id": 3013, "isConstant": false, "isLValue": false, "isPure": false, @@ -761,86 +788,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "394:59:18", + "src": "451:59:18", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2892, + "id": 3014, "nodeType": "ExpressionStatement", - "src": "394:59:18" + "src": "451:59:18" }, { "eventCall": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2894, + "id": 3016, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "476:3:18", + "referencedDeclaration": 4294967281, + "src": "533:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2895, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "476:10:18", + "src": "533:10:18", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 2896, + "id": 3018, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4230, - "src": "488:3:18", + "referencedDeclaration": 4294967281, + "src": "545:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2897, + "id": 3019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "488:9:18", + "src": "545:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "argumentTypes": null, - "id": 2898, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4232, - "src": "499:3:18", + "expression": { + "id": 3020, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "556:5:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "556:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -862,18 +896,18 @@ "typeString": "uint256" } ], - "id": 2893, + "id": 3015, "name": "Deposit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2882, - "src": "468:7:18", + "referencedDeclaration": 3002, + "src": "525:7:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 2899, + "id": 3022, "isConstant": false, "isLValue": false, "isPure": false, @@ -881,66 +915,88 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "468:35:18", + "src": "525:47:18", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2900, + "id": 3023, "nodeType": "EmitStatement", - "src": "463:40:18" + "src": "520:52:18" } ] }, - "documentation": "@notice Allows the contract to receive funds.", - "id": 2902, + "documentation": { + "id": 3003, + "nodeType": "StructuredDocumentation", + "src": "342:49:18", + "text": "@notice Allows the contract to receive funds." + }, + "functionSelector": "d0e30db0", + "id": 3025, "implemented": true, "kind": "function", "modifiers": [], "name": "deposit", "nodeType": "FunctionDefinition", + "overrides": { + "id": 3005, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "432:8:18" + }, "parameters": { - "id": 2883, + "id": 3004, "nodeType": "ParameterList", "parameters": [], - "src": "364:2:18" + "src": "412:2:18" }, "returnParameters": { - "id": 2884, + "id": 3006, "nodeType": "ParameterList", "parameters": [], - "src": "384:0:18" + "src": "441:0:18" }, - "scope": 2903, - "src": "348:162:18", + "scope": 3026, + "src": "396:183:18", "stateMutability": "payable", - "superFunction": 2868, + "virtual": false, "visibility": "external" } ], - "scope": 2904, - "src": "107:405:18" + "scope": 3027, + "src": "155:426:18" } ], - "src": "0:513:18" + "src": "40:542:18" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.519Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.118Z", "devdoc": { - "methods": {} + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { + "events": { + "Deposit(address,uint256,uint256)": { + "notice": "Event emitted when the contract receives a deposit." + } + }, + "kind": "user", "methods": { "deposit()": { "notice": "Allows the contract to receive funds." } }, - "notice": "A contract that can receive funds/deposits." + "notice": "A contract that can receive funds/deposits.", + "version": 1 } } diff --git a/build/contracts/Roles.json b/build/contracts/Roles.json index d858b1a..c639549 100644 --- a/build/contracts/Roles.json +++ b/build/contracts/Roles.json @@ -1,49 +1,60 @@ { "contractName": "Roles", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing addresses assigned to a Role.\",\"methods\":{},\"title\":\"Roles\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/access/Roles.sol\":\"Roles\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]}},\"version\":1}", - "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158205f541cbd7cece25c211b95bf50eec849712512ef6a205d866c28ab936693dc5664736f6c634300050c0032", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158205f541cbd7cece25c211b95bf50eec849712512ef6a205d866c28ab936693dc5664736f6c634300050c0032", - "sourceMap": "108:873:24:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "108:873:24:-;;;;;;;;", - "source": "pragma solidity ^0.5.0;\n\n/**\n * @title Roles\n * @dev Library for managing addresses assigned to a Role.\n */\nlibrary Roles {\n struct Role {\n mapping (address => bool) bearer;\n }\n\n /**\n * @dev Give an account access to this role.\n */\n function add(Role storage role, address account) internal {\n require(!has(role, account), \"Roles: account already has role\");\n role.bearer[account] = true;\n }\n\n /**\n * @dev Remove an account's access to this role.\n */\n function remove(Role storage role, address account) internal {\n require(has(role, account), \"Roles: account does not have role\");\n role.bearer[account] = false;\n }\n\n /**\n * @dev Check if an account has this role.\n * @return bool\n */\n function has(Role storage role, address account) internal view returns (bool) {\n require(account != address(0), \"Roles: account is the zero address\");\n return role.bearer[account];\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing addresses assigned to a Role.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Roles\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":\"Roles\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol\":{\"keccak256\":\"0xa2b42f0e55cbc7aa021e27a6d433231aef7afa7bcb67ad2b591122d4cffa2b10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://251d332eafdcc13078f201e14296a0280e29cce88040905d786d4571bba84eea\",\"dweb:/ipfs/QmWYu8To6JMBy46CgXVv9o7biZbsARWh4H5h2zpcjGW6qG\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e458a5fe3f9332f49b293c20a9beb44e25907930a934b16c179a5776f61ea3a164736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e458a5fe3f9332f49b293c20a9beb44e25907930a934b16c179a5776f61ea3a164736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "271:873:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "271:873:23:-:0;;;;;;;;", + "source": "\n// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.5.0/contracts/access/Roles.sol\n\n// SPDX-License-Identifier: UNLICENSED\n\npragma solidity >=0.7.0 <0.8.0;\n\n/**\n * @title Roles\n * @dev Library for managing addresses assigned to a Role.\n */\nlibrary Roles {\n struct Role {\n mapping (address => bool) bearer;\n }\n\n /**\n * @dev Give an account access to this role.\n */\n function add(Role storage role, address account) internal {\n require(!has(role, account), \"Roles: account already has role\");\n role.bearer[account] = true;\n }\n\n /**\n * @dev Remove an account's access to this role.\n */\n function remove(Role storage role, address account) internal {\n require(has(role, account), \"Roles: account does not have role\");\n role.bearer[account] = false;\n }\n\n /**\n * @dev Check if an account has this role.\n * @return bool\n */\n function has(Role storage role, address account) internal view returns (bool) {\n require(account != address(0), \"Roles: account is the zero address\");\n return role.bearer[account];\n }\n}", + "sourcePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", "exportedSymbols": { - "Roles": [4082] + "Roles": [3618] }, - "id": 4083, + "id": 3619, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 4003, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3534, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:24" + "src": "155:31:23" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", + "documentation": { + "id": 3535, + "nodeType": "StructuredDocumentation", + "src": "188:82:23", + "text": " @title Roles\n @dev Library for managing addresses assigned to a Role." + }, "fullyImplemented": true, - "id": 4082, - "linearizedBaseContracts": [4082], + "id": 3618, + "linearizedBaseContracts": [3618], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 4008, + "id": 3540, "members": [ { "constant": false, - "id": 4007, + "id": 3539, + "mutability": "mutable", "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 4008, - "src": "150:32:24", + "scope": 3540, + "src": "313:32:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51,57 +62,54 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 4006, + "id": 3538, "keyType": { - "id": 4004, + "id": 3536, "name": "address", "nodeType": "ElementaryTypeName", - "src": "159:7:24", + "src": "322:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "150:25:24", + "src": "313:25:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 4005, + "id": 3537, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "170:4:24", + "src": "333:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" } ], "name": "Role", "nodeType": "StructDefinition", - "scope": 4082, - "src": "128:61:24", + "scope": 3618, + "src": "291:61:23", "visibility": "public" }, { "body": { - "id": 4032, + "id": 3565, "nodeType": "Block", - "src": "318:117:24", + "src": "481:117:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4020, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, @@ -109,31 +117,28 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "336:19:24", + "src": "499:19:23", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4017, + "id": 3550, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4010, - "src": "341:4:24", + "referencedDeclaration": 3543, + "src": "504:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { - "argumentTypes": null, - "id": 4018, + "id": 3551, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "347:7:24", + "referencedDeclaration": 3545, + "src": "510:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -143,7 +148,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -151,18 +156,18 @@ "typeString": "address" } ], - "id": 4016, + "id": 3549, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4081, - "src": "337:3:24", + "referencedDeclaration": 3617, + "src": "500:3:23", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4019, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, @@ -170,7 +175,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "337:18:24", + "src": "500:18:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -182,17 +188,15 @@ } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420616c72656164792068617320726f6c65", - "id": 4021, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "357:33:24", - "subdenomination": null, + "src": "520:33:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f76c3a3e97a37fcdff532c2741c10933ebf2b769d5475388e30ae4f7155f13a", "typeString": "literal_string \"Roles: account already has role\"" @@ -211,18 +215,18 @@ "typeString": "literal_string \"Roles: account already has role\"" } ], - "id": 4015, + "id": 3548, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "328:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "491:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4022, + "id": 3555, "isConstant": false, "isLValue": false, "isPure": false, @@ -230,64 +234,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "328:63:24", + "src": "491:63:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4023, + "id": 3556, "nodeType": "ExpressionStatement", - "src": "328:63:24" + "src": "491:63:23" }, { "expression": { - "argumentTypes": null, - "id": 4030, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4024, + "id": 3557, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4010, - "src": "401:4:24", + "referencedDeclaration": 3543, + "src": "564:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4027, + "id": 3560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "401:11:24", + "referencedDeclaration": 3539, + "src": "564:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4028, + "id": 3561, "indexExpression": { - "argumentTypes": null, - "id": 4026, + "id": 3559, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "413:7:24", + "referencedDeclaration": 3545, + "src": "576:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -298,7 +298,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "401:20:24", + "src": "564:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -307,81 +307,84 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 4029, + "id": 3562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "424:4:24", - "subdenomination": null, + "src": "587:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "401:27:24", + "src": "564:27:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4031, + "id": 3564, "nodeType": "ExpressionStatement", - "src": "401:27:24" + "src": "564:27:23" } ] }, - "documentation": "@dev Give an account access to this role.", - "id": 4033, + "documentation": { + "id": 3541, + "nodeType": "StructuredDocumentation", + "src": "358:60:23", + "text": " @dev Give an account access to this role." + }, + "id": 3566, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 4013, + "id": 3546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4010, + "id": 3543, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4033, - "src": "273:17:24", + "scope": 3566, + "src": "436:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4009, + "id": 3542, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "273:4:24", + "referencedDeclaration": 3540, + "src": "436:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4012, + "id": 3545, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4033, - "src": "292:15:24", + "scope": 3566, + "src": "455:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -389,68 +392,63 @@ "typeString": "address" }, "typeName": { - "id": 4011, + "id": 3544, "name": "address", "nodeType": "ElementaryTypeName", - "src": "292:7:24", + "src": "455:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "272:36:24" + "src": "435:36:23" }, "returnParameters": { - "id": 4014, + "id": 3547, "nodeType": "ParameterList", "parameters": [], - "src": "318:0:24" + "src": "481:0:23" }, - "scope": 4082, - "src": "260:175:24", + "scope": 3618, + "src": "423:175:23", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4056, + "id": 3590, "nodeType": "Block", - "src": "571:119:24", + "src": "734:119:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4042, + "id": 3576, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "593:4:24", + "referencedDeclaration": 3569, + "src": "756:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { - "argumentTypes": null, - "id": 4043, + "id": 3577, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "599:7:24", + "referencedDeclaration": 3571, + "src": "762:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -460,7 +458,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -468,18 +466,18 @@ "typeString": "address" } ], - "id": 4041, + "id": 3575, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4081, - "src": "589:3:24", + "referencedDeclaration": 3617, + "src": "752:3:23", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4044, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, @@ -487,24 +485,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "589:18:24", + "src": "752:18:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65", - "id": 4045, + "id": 3579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "609:35:24", - "subdenomination": null, + "src": "772:35:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7bd893145ac435f339bb7c288622d270324b7033b011f693aca172f5cbc3c257", "typeString": "literal_string \"Roles: account does not have role\"" @@ -523,18 +520,18 @@ "typeString": "literal_string \"Roles: account does not have role\"" } ], - "id": 4040, + "id": 3574, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "581:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "744:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4046, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": false, @@ -542,64 +539,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "581:64:24", + "src": "744:64:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4047, + "id": 3581, "nodeType": "ExpressionStatement", - "src": "581:64:24" + "src": "744:64:23" }, { "expression": { - "argumentTypes": null, - "id": 4054, + "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4048, + "id": 3582, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "655:4:24", + "referencedDeclaration": 3569, + "src": "818:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4051, + "id": 3585, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "655:11:24", + "referencedDeclaration": 3539, + "src": "818:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4052, + "id": 3586, "indexExpression": { - "argumentTypes": null, - "id": 4050, + "id": 3584, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "667:7:24", + "referencedDeclaration": 3571, + "src": "830:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -610,7 +603,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "655:20:24", + "src": "818:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -619,81 +612,84 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 4053, + "id": 3587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "678:5:24", - "subdenomination": null, + "src": "841:5:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "655:28:24", + "src": "818:28:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4055, + "id": 3589, "nodeType": "ExpressionStatement", - "src": "655:28:24" + "src": "818:28:23" } ] }, - "documentation": "@dev Remove an account's access to this role.", - "id": 4057, + "documentation": { + "id": 3567, + "nodeType": "StructuredDocumentation", + "src": "604:64:23", + "text": " @dev Remove an account's access to this role." + }, + "id": 3591, "implemented": true, "kind": "function", "modifiers": [], "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 4038, + "id": 3572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4035, + "id": 3569, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4057, - "src": "526:17:24", + "scope": 3591, + "src": "689:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4034, + "id": 3568, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "526:4:24", + "referencedDeclaration": 3540, + "src": "689:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4037, + "id": 3571, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4057, - "src": "545:15:24", + "scope": 3591, + "src": "708:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -701,63 +697,59 @@ "typeString": "address" }, "typeName": { - "id": 4036, + "id": 3570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "545:7:24", + "src": "708:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "525:36:24" + "src": "688:36:23" }, "returnParameters": { - "id": 4039, + "id": 3573, "nodeType": "ParameterList", "parameters": [], - "src": "571:0:24" + "src": "734:0:23" }, - "scope": 4082, - "src": "510:180:24", + "scope": 3618, + "src": "673:180:23", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4080, + "id": 3616, "nodeType": "Block", - "src": "857:122:24", + "src": "1020:122:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4071, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4067, + "id": 3602, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4061, - "src": "875:7:24", + "referencedDeclaration": 3596, + "src": "1038:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -766,20 +758,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 4069, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "894:1:24", - "subdenomination": null, + "src": "1057:1:23", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -794,20 +783,26 @@ "typeString": "int_const 0" } ], - "id": 4068, + "id": 3604, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "886:7:24", + "src": "1049:7:23", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1049:7:23", + "typeDescriptions": {} + } }, - "id": 4070, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": true, @@ -815,30 +810,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "886:10:24", + "src": "1049:10:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "875:21:24", + "src": "1038:21:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "id": 4072, + "id": 3608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "898:36:24", - "subdenomination": null, + "src": "1061:36:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d214fa89563f4e6456a3929327e54500ea1cde2c0ba9fb2035ec106190d682f", "typeString": "literal_string \"Roles: account is the zero address\"" @@ -857,18 +851,18 @@ "typeString": "literal_string \"Roles: account is the zero address\"" } ], - "id": 4066, + "id": 3601, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "867:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1030:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4073, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, @@ -876,57 +870,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "867:68:24", + "src": "1030:68:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4074, + "id": 3610, "nodeType": "ExpressionStatement", - "src": "867:68:24" + "src": "1030:68:23" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4075, + "id": 3611, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4059, - "src": "952:4:24", + "referencedDeclaration": 3594, + "src": "1115:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4076, + "id": 3612, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "952:11:24", + "referencedDeclaration": 3539, + "src": "1115:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4078, + "id": 3614, "indexExpression": { - "argumentTypes": null, - "id": 4077, + "id": 3613, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4061, - "src": "964:7:24", + "referencedDeclaration": 3596, + "src": "1127:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -937,65 +928,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "952:20:24", + "src": "1115:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4065, - "id": 4079, + "functionReturnParameters": 3600, + "id": 3615, "nodeType": "Return", - "src": "945:27:24" + "src": "1108:27:23" } ] }, - "documentation": "@dev Check if an account has this role.\n@return bool", - "id": 4081, + "documentation": { + "id": 3592, + "nodeType": "StructuredDocumentation", + "src": "859:78:23", + "text": " @dev Check if an account has this role.\n @return bool" + }, + "id": 3617, "implemented": true, "kind": "function", "modifiers": [], "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 4062, + "id": 3597, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4059, + "id": 3594, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "792:17:24", + "scope": 3617, + "src": "955:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4058, + "id": 3593, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "792:4:24", + "referencedDeclaration": 3540, + "src": "955:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4061, + "id": 3596, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "811:15:24", + "scope": 3617, + "src": "974:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1003,33 +999,33 @@ "typeString": "address" }, "typeName": { - "id": 4060, + "id": 3595, "name": "address", "nodeType": "ElementaryTypeName", - "src": "811:7:24", + "src": "974:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "791:36:24" + "src": "954:36:23" }, "returnParameters": { - "id": 4065, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4064, + "id": 3599, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "851:4:24", + "scope": 3617, + "src": "1014:4:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1037,70 +1033,77 @@ "typeString": "bool" }, "typeName": { - "id": 4063, + "id": 3598, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "851:4:24", + "src": "1014:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "850:6:24" + "src": "1013:6:23" }, - "scope": 4082, - "src": "779:200:24", + "scope": 3618, + "src": "942:200:23", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 4083, - "src": "108:873:24" + "scope": 3619, + "src": "271:873:23" } ], - "src": "0:982:24" + "src": "155:989:23" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", + "absolutePath": "/media/fodisi/56401C55401C3DE5/dev/Projects/hackapay/contracts/roles/Roles.sol", "exportedSymbols": { - "Roles": [4082] + "Roles": [3618] }, - "id": 4083, + "id": 3619, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 4003, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3534, + "literals": ["solidity", ">=", "0.7", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:24" + "src": "155:31:23" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", + "documentation": { + "id": 3535, + "nodeType": "StructuredDocumentation", + "src": "188:82:23", + "text": " @title Roles\n @dev Library for managing addresses assigned to a Role." + }, "fullyImplemented": true, - "id": 4082, - "linearizedBaseContracts": [4082], + "id": 3618, + "linearizedBaseContracts": [3618], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 4008, + "id": 3540, "members": [ { "constant": false, - "id": 4007, + "id": 3539, + "mutability": "mutable", "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 4008, - "src": "150:32:24", + "scope": 3540, + "src": "313:32:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1108,57 +1111,54 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 4006, + "id": 3538, "keyType": { - "id": 4004, + "id": 3536, "name": "address", "nodeType": "ElementaryTypeName", - "src": "159:7:24", + "src": "322:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "150:25:24", + "src": "313:25:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 4005, + "id": 3537, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "170:4:24", + "src": "333:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, - "value": null, "visibility": "internal" } ], "name": "Role", "nodeType": "StructDefinition", - "scope": 4082, - "src": "128:61:24", + "scope": 3618, + "src": "291:61:23", "visibility": "public" }, { "body": { - "id": 4032, + "id": 3565, "nodeType": "Block", - "src": "318:117:24", + "src": "481:117:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4020, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": false, @@ -1166,31 +1166,28 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "336:19:24", + "src": "499:19:23", "subExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4017, + "id": 3550, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4010, - "src": "341:4:24", + "referencedDeclaration": 3543, + "src": "504:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { - "argumentTypes": null, - "id": 4018, + "id": 3551, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "347:7:24", + "referencedDeclaration": 3545, + "src": "510:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1200,7 +1197,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -1208,18 +1205,18 @@ "typeString": "address" } ], - "id": 4016, + "id": 3549, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4081, - "src": "337:3:24", + "referencedDeclaration": 3617, + "src": "500:3:23", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4019, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, @@ -1227,7 +1224,8 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "337:18:24", + "src": "500:18:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1239,17 +1237,15 @@ } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420616c72656164792068617320726f6c65", - "id": 4021, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "357:33:24", - "subdenomination": null, + "src": "520:33:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0f76c3a3e97a37fcdff532c2741c10933ebf2b769d5475388e30ae4f7155f13a", "typeString": "literal_string \"Roles: account already has role\"" @@ -1268,18 +1264,18 @@ "typeString": "literal_string \"Roles: account already has role\"" } ], - "id": 4015, + "id": 3548, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "328:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "491:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4022, + "id": 3555, "isConstant": false, "isLValue": false, "isPure": false, @@ -1287,64 +1283,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "328:63:24", + "src": "491:63:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4023, + "id": 3556, "nodeType": "ExpressionStatement", - "src": "328:63:24" + "src": "491:63:23" }, { "expression": { - "argumentTypes": null, - "id": 4030, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4024, + "id": 3557, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4010, - "src": "401:4:24", + "referencedDeclaration": 3543, + "src": "564:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4027, + "id": 3560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "401:11:24", + "referencedDeclaration": 3539, + "src": "564:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4028, + "id": 3561, "indexExpression": { - "argumentTypes": null, - "id": 4026, + "id": 3559, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4012, - "src": "413:7:24", + "referencedDeclaration": 3545, + "src": "576:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1355,7 +1347,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "401:20:24", + "src": "564:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1364,81 +1356,84 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "74727565", - "id": 4029, + "id": 3562, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "424:4:24", - "subdenomination": null, + "src": "587:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "401:27:24", + "src": "564:27:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4031, + "id": 3564, "nodeType": "ExpressionStatement", - "src": "401:27:24" + "src": "564:27:23" } ] }, - "documentation": "@dev Give an account access to this role.", - "id": 4033, + "documentation": { + "id": 3541, + "nodeType": "StructuredDocumentation", + "src": "358:60:23", + "text": " @dev Give an account access to this role." + }, + "id": 3566, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 4013, + "id": 3546, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4010, + "id": 3543, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4033, - "src": "273:17:24", + "scope": 3566, + "src": "436:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4009, + "id": 3542, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "273:4:24", + "referencedDeclaration": 3540, + "src": "436:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4012, + "id": 3545, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4033, - "src": "292:15:24", + "scope": 3566, + "src": "455:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1446,68 +1441,63 @@ "typeString": "address" }, "typeName": { - "id": 4011, + "id": 3544, "name": "address", "nodeType": "ElementaryTypeName", - "src": "292:7:24", + "src": "455:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "272:36:24" + "src": "435:36:23" }, "returnParameters": { - "id": 4014, + "id": 3547, "nodeType": "ParameterList", "parameters": [], - "src": "318:0:24" + "src": "481:0:23" }, - "scope": 4082, - "src": "260:175:24", + "scope": 3618, + "src": "423:175:23", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4056, + "id": 3590, "nodeType": "Block", - "src": "571:119:24", + "src": "734:119:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "id": 4042, + "id": 3576, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "593:4:24", + "referencedDeclaration": 3569, + "src": "756:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { - "argumentTypes": null, - "id": 4043, + "id": 3577, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "599:7:24", + "referencedDeclaration": 3571, + "src": "762:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1517,7 +1507,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -1525,18 +1515,18 @@ "typeString": "address" } ], - "id": 4041, + "id": 3575, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4081, - "src": "589:3:24", + "referencedDeclaration": 3617, + "src": "752:3:23", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$4008_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$3540_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 4044, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, @@ -1544,24 +1534,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "589:18:24", + "src": "752:18:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65", - "id": 4045, + "id": 3579, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "609:35:24", - "subdenomination": null, + "src": "772:35:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7bd893145ac435f339bb7c288622d270324b7033b011f693aca172f5cbc3c257", "typeString": "literal_string \"Roles: account does not have role\"" @@ -1580,18 +1569,18 @@ "typeString": "literal_string \"Roles: account does not have role\"" } ], - "id": 4040, + "id": 3574, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "581:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "744:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4046, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": false, @@ -1599,64 +1588,60 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "581:64:24", + "src": "744:64:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4047, + "id": 3581, "nodeType": "ExpressionStatement", - "src": "581:64:24" + "src": "744:64:23" }, { "expression": { - "argumentTypes": null, - "id": 4054, + "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4048, + "id": 3582, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4035, - "src": "655:4:24", + "referencedDeclaration": 3569, + "src": "818:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4051, + "id": 3585, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "655:11:24", + "referencedDeclaration": 3539, + "src": "818:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4052, + "id": 3586, "indexExpression": { - "argumentTypes": null, - "id": 4050, + "id": 3584, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4037, - "src": "667:7:24", + "referencedDeclaration": 3571, + "src": "830:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1667,7 +1652,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "655:20:24", + "src": "818:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1676,81 +1661,84 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "argumentTypes": null, "hexValue": "66616c7365", - "id": 4053, + "id": 3587, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "678:5:24", - "subdenomination": null, + "src": "841:5:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "src": "655:28:24", + "src": "818:28:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4055, + "id": 3589, "nodeType": "ExpressionStatement", - "src": "655:28:24" + "src": "818:28:23" } ] }, - "documentation": "@dev Remove an account's access to this role.", - "id": 4057, + "documentation": { + "id": 3567, + "nodeType": "StructuredDocumentation", + "src": "604:64:23", + "text": " @dev Remove an account's access to this role." + }, + "id": 3591, "implemented": true, "kind": "function", "modifiers": [], "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 4038, + "id": 3572, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4035, + "id": 3569, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4057, - "src": "526:17:24", + "scope": 3591, + "src": "689:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4034, + "id": 3568, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "526:4:24", + "referencedDeclaration": 3540, + "src": "689:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4037, + "id": 3571, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4057, - "src": "545:15:24", + "scope": 3591, + "src": "708:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1758,63 +1746,59 @@ "typeString": "address" }, "typeName": { - "id": 4036, + "id": 3570, "name": "address", "nodeType": "ElementaryTypeName", - "src": "545:7:24", + "src": "708:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "525:36:24" + "src": "688:36:23" }, "returnParameters": { - "id": 4039, + "id": 3573, "nodeType": "ParameterList", "parameters": [], - "src": "571:0:24" + "src": "734:0:23" }, - "scope": 4082, - "src": "510:180:24", + "scope": 3618, + "src": "673:180:23", "stateMutability": "nonpayable", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4080, + "id": 3616, "nodeType": "Block", - "src": "857:122:24", + "src": "1020:122:23", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, - "id": 4071, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4067, + "id": 3602, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4061, - "src": "875:7:24", + "referencedDeclaration": 3596, + "src": "1038:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1823,20 +1807,17 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "hexValue": "30", - "id": 4069, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "894:1:24", - "subdenomination": null, + "src": "1057:1:23", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -1851,20 +1832,26 @@ "typeString": "int_const 0" } ], - "id": 4068, + "id": 3604, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "886:7:24", + "src": "1049:7:23", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, - "typeName": "address" + "typeName": { + "id": 3603, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1049:7:23", + "typeDescriptions": {} + } }, - "id": 4070, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": true, @@ -1872,30 +1859,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "886:10:24", + "src": "1049:10:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "875:21:24", + "src": "1038:21:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "id": 4072, + "id": 3608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "898:36:24", - "subdenomination": null, + "src": "1061:36:23", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d214fa89563f4e6456a3929327e54500ea1cde2c0ba9fb2035ec106190d682f", "typeString": "literal_string \"Roles: account is the zero address\"" @@ -1914,18 +1900,18 @@ "typeString": "literal_string \"Roles: account is the zero address\"" } ], - "id": 4066, + "id": 3601, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "867:7:24", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1030:7:23", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4073, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, @@ -1933,57 +1919,54 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "867:68:24", + "src": "1030:68:23", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4074, + "id": 3610, "nodeType": "ExpressionStatement", - "src": "867:68:24" + "src": "1030:68:23" }, { "expression": { - "argumentTypes": null, "baseExpression": { - "argumentTypes": null, "expression": { - "argumentTypes": null, - "id": 4075, + "id": 3611, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4059, - "src": "952:4:24", + "referencedDeclaration": 3594, + "src": "1115:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 4076, + "id": 3612, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 4007, - "src": "952:11:24", + "referencedDeclaration": 3539, + "src": "1115:11:23", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 4078, + "id": 3614, "indexExpression": { - "argumentTypes": null, - "id": 4077, + "id": 3613, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4061, - "src": "964:7:24", + "referencedDeclaration": 3596, + "src": "1127:7:23", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1994,65 +1977,70 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "952:20:24", + "src": "1115:20:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4065, - "id": 4079, + "functionReturnParameters": 3600, + "id": 3615, "nodeType": "Return", - "src": "945:27:24" + "src": "1108:27:23" } ] }, - "documentation": "@dev Check if an account has this role.\n@return bool", - "id": 4081, + "documentation": { + "id": 3592, + "nodeType": "StructuredDocumentation", + "src": "859:78:23", + "text": " @dev Check if an account has this role.\n @return bool" + }, + "id": 3617, "implemented": true, "kind": "function", "modifiers": [], "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 4062, + "id": 3597, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4059, + "id": 3594, + "mutability": "mutable", "name": "role", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "792:17:24", + "scope": 3617, + "src": "955:17:23", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { - "contractScope": null, - "id": 4058, + "id": 3593, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4008, - "src": "792:4:24", + "referencedDeclaration": 3540, + "src": "955:4:23", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$4008_storage_ptr", + "typeIdentifier": "t_struct$_Role_$3540_storage_ptr", "typeString": "struct Roles.Role" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4061, + "id": 3596, + "mutability": "mutable", "name": "account", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "811:15:24", + "scope": 3617, + "src": "974:15:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2060,33 +2048,33 @@ "typeString": "address" }, "typeName": { - "id": 4060, + "id": 3595, "name": "address", "nodeType": "ElementaryTypeName", - "src": "811:7:24", + "src": "974:7:23", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "value": null, "visibility": "internal" } ], - "src": "791:36:24" + "src": "954:36:23" }, "returnParameters": { - "id": 4065, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4064, + "id": 3599, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "851:4:24", + "scope": 3617, + "src": "1014:4:23", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2094,47 +2082,50 @@ "typeString": "bool" }, "typeName": { - "id": 4063, + "id": 3598, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "851:4:24", + "src": "1014:4:23", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, "visibility": "internal" } ], - "src": "850:6:24" + "src": "1013:6:23" }, - "scope": 4082, - "src": "779:200:24", + "scope": 3618, + "src": "942:200:23", "stateMutability": "view", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 4083, - "src": "108:873:24" + "scope": 3619, + "src": "271:873:23" } ], - "src": "0:982:24" + "src": "155:989:23" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:34:10.548Z", + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.143Z", "devdoc": { "details": "Library for managing addresses assigned to a Role.", + "kind": "dev", "methods": {}, - "title": "Roles" + "title": "Roles", + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index d2fbd1c..bd95cf3 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -1,54 +1,65 @@ { "contractName": "SafeMath", "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]}},\"version\":1}", - "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ec2ce07c8b433bc61a301c97fdec613c95337fb1d21c7f398f0105ed034981364736f6c634300050c0032", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158207ec2ce07c8b433bc61a301c97fdec613c95337fb1d21c7f398f0105ed034981364736f6c634300050c0032", - "sourceMap": "589:2938:25:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "589:2938:25:-;;;;;;;;", - "source": "pragma solidity ^0.5.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, \"SafeMath: division by zero\");\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x3b21f2c8d626de3b9925ae33e972d8bf5c8b1bffb3f4ee94daeed7d0679036e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8d45329fecbf0836ad7543330c3ecd0f8d0ffa42d4016278c3eb2215fdcdfe\",\"dweb:/ipfs/QmXWLT7GcnHtA5NiD6MFi2CV3EWJY4wv5mLNnypqYDrxL3\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035035f4f35ed6d33f41872ef310f06f7902be740e7377c68391737f8b273af5064736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122035035f4f35ed6d33f41872ef310f06f7902be740e7377c68391737f8b273af5064736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "630:4578:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "630:4578:24:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "@openzeppelin/contracts/math/SafeMath.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { - "SafeMath": [4215] + "SafeMath": [3814] }, - "id": 4216, + "id": 3815, + "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4084, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3620, + "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:25" + "src": "33:31:24" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", + "documentation": { + "id": 3621, + "nodeType": "StructuredDocumentation", + "src": "66:563:24", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, "fullyImplemented": true, - "id": 4215, - "linearizedBaseContracts": [4215], + "id": 3814, + "linearizedBaseContracts": [3814], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4108, + "id": 3646, "nodeType": "Block", - "src": "901:109:25", + "src": "949:109:24", "statements": [ { - "assignments": [4094], + "assignments": [3632], "declarations": [ { "constant": false, - "id": 4094, + "id": 3632, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4108, - "src": "911:9:25", + "scope": 3646, + "src": "959:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56,39 +67,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4093, + "id": 3631, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "911:7:25", + "src": "959:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4098, + "id": 3636, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4097, + "id": 3635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4095, + "id": 3633, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "923:1:25", + "referencedDeclaration": 3624, + "src": "971:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -97,50 +105,46 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "argumentTypes": null, - "id": 4096, + "id": 3634, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4088, - "src": "927:1:25", + "referencedDeclaration": 3626, + "src": "975:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "923:5:25", + "src": "971:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "911:17:25" + "src": "959:17:24" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4102, + "id": 3640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4100, + "id": 3638, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "946:1:25", + "referencedDeclaration": 3632, + "src": "994:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -149,36 +153,33 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "argumentTypes": null, - "id": 4101, + "id": 3639, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "951:1:25", + "referencedDeclaration": 3624, + "src": "999:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "946:6:25", + "src": "994:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 4103, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "954:29:25", - "subdenomination": null, + "src": "1002:29:24", "typeDescriptions": { "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", "typeString": "literal_string \"SafeMath: addition overflow\"" @@ -197,18 +198,18 @@ "typeString": "literal_string \"SafeMath: addition overflow\"" } ], - "id": 4099, + "id": 3637, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "938:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "986:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4104, + "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, @@ -216,55 +217,269 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "938:46:25", + "src": "986:46:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4105, + "id": 3643, "nodeType": "ExpressionStatement", - "src": "938:46:25" + "src": "986:46:24" }, { "expression": { - "argumentTypes": null, - "id": 4106, + "id": 3644, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "1002:1:25", + "referencedDeclaration": 3632, + "src": "1050:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4092, - "id": 4107, + "functionReturnParameters": 3630, + "id": 3645, "nodeType": "Return", - "src": "995:8:25" + "src": "1043:8:24" } ] }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 4109, + "documentation": { + "id": 3622, + "nodeType": "StructuredDocumentation", + "src": "653:224:24", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 3647, "implemented": true, "kind": "function", "modifiers": [], "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 4089, + "id": 3627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3624, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "895:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "895:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3626, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "906:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "906:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "894:22:24" + }, + "returnParameters": { + "id": 3630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3629, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "940:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "940:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:24" + }, + "scope": 3814, + "src": "882:176:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3663, + "nodeType": "Block", + "src": "1396:67:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3658, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "1417:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3659, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "1420:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 3660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1423:32:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 3657, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [3664, 3692], + "referencedDeclaration": 3692, + "src": "1413:3:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1413:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3656, + "id": 3662, + "nodeType": "Return", + "src": "1406:50:24" + } + ] + }, + "documentation": { + "id": 3648, + "nodeType": "StructuredDocumentation", + "src": "1064:260:24", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3664, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4086, + "id": 3650, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "847:9:25", + "scope": 3664, + "src": "1342:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -272,25 +487,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4085, + "id": 3649, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "847:7:25", + "src": "1342:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4088, + "id": 3652, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "858:9:25", + "scope": 3664, + "src": "1353:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -298,32 +513,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4087, + "id": 3651, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "858:7:25", + "src": "1353:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "846:22:25" + "src": "1341:22:24" }, "returnParameters": { - "id": 4092, + "id": 3656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4091, + "id": 3655, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "892:7:25", + "scope": 3664, + "src": "1387:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -331,56 +546,52 @@ "typeString": "uint256" }, "typeName": { - "id": 4090, + "id": 3654, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "892:7:25", + "src": "1387:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "891:9:25" + "src": "1386:9:24" }, - "scope": 4215, - "src": "834:176:25", + "scope": 3814, + "src": "1329:134:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4133, + "id": 3691, "nodeType": "Block", - "src": "1341:112:25", + "src": "1849:92:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4121, + "id": 3679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4119, + "id": 3677, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4113, - "src": "1359:1:25", + "referencedDeclaration": 3669, + "src": "1867:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -389,41 +600,34 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, - "id": 4120, + "id": 3678, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4111, - "src": "1364:1:25", + "referencedDeclaration": 3667, + "src": "1872:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1359:6:25", + "src": "1867:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1367:32:25", - "subdenomination": null, + "id": 3680, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "1875:12:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -433,22 +637,22 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 4118, + "id": 3676, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1351:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1859:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4123, + "id": 3681, "isConstant": false, "isLValue": false, "isPure": false, @@ -456,26 +660,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1351:49:25", + "src": "1859:29:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4124, + "id": 3682, "nodeType": "ExpressionStatement", - "src": "1351:49:25" + "src": "1859:29:24" }, { - "assignments": [4126], + "assignments": [3684], "declarations": [ { "constant": false, - "id": 4126, + "id": 3684, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4133, - "src": "1410:9:25", + "scope": 3691, + "src": "1898:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -483,39 +689,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4125, + "id": 3683, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1410:7:25", + "src": "1898:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4130, + "id": 3688, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4129, + "id": 3687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4127, + "id": 3685, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4111, - "src": "1422:1:25", + "referencedDeclaration": 3667, + "src": "1910:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -524,66 +727,70 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "argumentTypes": null, - "id": 4128, + "id": 3686, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4113, - "src": "1426:1:25", + "referencedDeclaration": 3669, + "src": "1914:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1422:5:25", + "src": "1910:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1410:17:25" + "src": "1898:17:24" }, { "expression": { - "argumentTypes": null, - "id": 4131, + "id": 3689, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4126, - "src": "1445:1:25", + "referencedDeclaration": 3684, + "src": "1933:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4117, - "id": 4132, + "functionReturnParameters": 3675, + "id": 3690, "nodeType": "Return", - "src": "1438:8:25" + "src": "1926:8:24" } ] }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 4134, + "documentation": { + "id": 3665, + "nodeType": "StructuredDocumentation", + "src": "1469:280:24", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3692, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 4114, + "id": 3672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4111, + "id": 3667, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1287:9:25", + "scope": 3692, + "src": "1767:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -591,25 +798,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4110, + "id": 3666, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1287:7:25", + "src": "1767:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4113, + "id": 3669, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1298:9:25", + "scope": 3692, + "src": "1778:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -617,32 +824,58 @@ "typeString": "uint256" }, "typeName": { - "id": 4112, + "id": 3668, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:25", + "src": "1778:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3671, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3692, + "src": "1789:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3670, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1789:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, "visibility": "internal" } ], - "src": "1286:22:25" + "src": "1766:50:24" }, "returnParameters": { - "id": 4117, + "id": 3675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4116, + "id": 3674, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1332:7:25", + "scope": 3692, + "src": "1840:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -650,53 +883,50 @@ "typeString": "uint256" }, "typeName": { - "id": 4115, + "id": 3673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1332:7:25", + "src": "1840:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1331:9:25" + "src": "1839:9:24" }, - "scope": 4215, - "src": "1274:179:25", + "scope": 3814, + "src": "1754:187:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4167, + "id": 3726, "nodeType": "Block", - "src": "1760:391:25", + "src": "2255:392:24", "statements": [ { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4145, + "id": 3704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4143, + "id": 3702, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "1991:1:25", + "referencedDeclaration": 3695, + "src": "2487:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -705,75 +935,71 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 4144, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1996:1:25", - "subdenomination": null, + "src": "2492:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1991:6:25", + "src": "2487:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 4149, + "id": 3708, "nodeType": "IfStatement", - "src": "1987:45:25", + "src": "2483:45:24", "trueBody": { - "id": 4148, + "id": 3707, "nodeType": "Block", - "src": "1999:33:25", + "src": "2495:33:24", "statements": [ { "expression": { - "argumentTypes": null, "hexValue": "30", - "id": 4146, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2020:1:25", - "subdenomination": null, + "src": "2516:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 4142, - "id": 4147, + "functionReturnParameters": 3701, + "id": 3706, "nodeType": "Return", - "src": "2013:8:25" + "src": "2509:8:24" } ] } }, { - "assignments": [4151], + "assignments": [3710], "declarations": [ { "constant": false, - "id": 4151, + "id": 3710, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4167, - "src": "2042:9:25", + "scope": 3726, + "src": "2538:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -781,39 +1007,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4150, + "id": 3709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2042:7:25", + "src": "2538:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4155, + "id": 3714, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4154, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4152, + "id": 3711, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "2054:1:25", + "referencedDeclaration": 3695, + "src": "2550:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -822,61 +1045,56 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "argumentTypes": null, - "id": 4153, + "id": 3712, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "2058:1:25", + "referencedDeclaration": 3697, + "src": "2554:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2054:5:25", + "src": "2550:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2042:17:25" + "src": "2538:17:24" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4161, + "id": 3720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4159, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4157, + "id": 3716, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "2077:1:25", + "referencedDeclaration": 3710, + "src": "2573:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -885,19 +1103,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "argumentTypes": null, - "id": 4158, + "id": 3717, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "2081:1:25", + "referencedDeclaration": 3695, + "src": "2577:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2077:5:25", + "src": "2573:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -906,36 +1123,33 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 4160, + "id": 3719, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "2086:1:25", + "referencedDeclaration": 3697, + "src": "2582:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2077:10:25", + "src": "2573:10:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 4162, + "id": 3721, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2089:35:25", - "subdenomination": null, + "src": "2585:35:24", "typeDescriptions": { "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", "typeString": "literal_string \"SafeMath: multiplication overflow\"" @@ -954,18 +1168,18 @@ "typeString": "literal_string \"SafeMath: multiplication overflow\"" } ], - "id": 4156, + "id": 3715, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2069:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2565:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4163, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": false, @@ -973,55 +1187,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2069:56:25", + "src": "2565:56:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4164, + "id": 3723, "nodeType": "ExpressionStatement", - "src": "2069:56:25" + "src": "2565:56:24" }, { "expression": { - "argumentTypes": null, - "id": 4165, + "id": 3724, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "2143:1:25", + "referencedDeclaration": 3710, + "src": "2639:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4142, - "id": 4166, + "functionReturnParameters": 3701, + "id": 3725, "nodeType": "Return", - "src": "2136:8:25" + "src": "2632:8:24" } ] }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 4168, + "documentation": { + "id": 3693, + "nodeType": "StructuredDocumentation", + "src": "1947:236:24", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 3727, "implemented": true, "kind": "function", "modifiers": [], "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 4139, + "id": 3698, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4136, + "id": 3695, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1706:9:25", + "scope": 3727, + "src": "2201:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1029,25 +1249,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4135, + "id": 3694, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1706:7:25", + "src": "2201:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4138, + "id": 3697, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1717:9:25", + "scope": 3727, + "src": "2212:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1055,32 +1275,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4137, + "id": 3696, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1717:7:25", + "src": "2212:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1705:22:25" + "src": "2200:22:24" }, "returnParameters": { - "id": 4142, + "id": 3701, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4141, + "id": 3700, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1751:7:25", + "scope": 3727, + "src": "2246:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1088,99 +1308,69 @@ "typeString": "uint256" }, "typeName": { - "id": 4140, + "id": 3699, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1751:7:25", + "src": "2246:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1750:9:25" + "src": "2245:9:24" }, - "scope": 4215, - "src": "1693:458:25", + "scope": 3814, + "src": "2188:459:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4192, + "id": 3743, "nodeType": "Block", - "src": "2673:259:25", + "src": "3176:63:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "commonType": { + "id": 3738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "3197:1:24", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4178, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4172, - "src": "2757:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2761:1:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2757:5:25", + } + }, + { + "id": 3739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "3200:1:24", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { - "argumentTypes": null, "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 4181, + "id": 3740, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2764:28:25", - "subdenomination": null, + "src": "3203:28:24", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", "typeString": "literal_string \"SafeMath: division by zero\"" @@ -1191,26 +1381,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 4177, - "name": "require", + "id": 3737, + "name": "div", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2749:7:25", + "overloadedDeclarations": [3744, 3772], + "referencedDeclaration": 3772, + "src": "3193:3:24", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 4182, + "id": 3741, "isConstant": false, "isLValue": false, "isPure": false, @@ -1218,134 +1412,593 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2749:44:25", + "src": "3193:39:24", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 4183, - "nodeType": "ExpressionStatement", - "src": "2749:44:25" - }, + "functionReturnParameters": 3736, + "id": 3742, + "nodeType": "Return", + "src": "3186:46:24" + } + ] + }, + "documentation": { + "id": 3728, + "nodeType": "StructuredDocumentation", + "src": "2653:451:24", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3744, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3733, + "nodeType": "ParameterList", + "parameters": [ { - "assignments": [4185], - "declarations": [ - { - "constant": false, - "id": 4185, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 4192, - "src": "2803:9:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", + "constant": false, + "id": 3730, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "3122:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3122:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3732, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "3133:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3133:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3121:22:24" + }, + "returnParameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3744, + "src": "3167:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3167:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3166:9:24" + }, + "scope": 3814, + "src": "3109:130:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3771, + "nodeType": "Block", + "src": "3816:177:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3757, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3749, + "src": "3834:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3838:1:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3834:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 3760, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3751, + "src": "3841:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3756, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3826:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3826:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3762, + "nodeType": "ExpressionStatement", + "src": "3826:28:24" + }, + { + "assignments": [3764], + "declarations": [ + { + "constant": false, + "id": 3764, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 3771, + "src": "3864:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { - "id": 4184, + "id": 3763, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2803:7:25", + "src": "3864:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4189, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "visibility": "internal" + } + ], + "id": 3768, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3765, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3747, + "src": "3876:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 3766, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3749, + "src": "3880:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3876:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3864:17:24" + }, + { + "expression": { + "id": 3769, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3764, + "src": "3985:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3755, + "id": 3770, + "nodeType": "Return", + "src": "3978:8:24" + } + ] + }, + "documentation": { + "id": 3745, + "nodeType": "StructuredDocumentation", + "src": "3245:471:24", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3772, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3747, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3734:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3734:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3749, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3745:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3745:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3751, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3756:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3750, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3733:50:24" + }, + "returnParameters": { + "id": 3755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3754, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3807:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3807:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3806:9:24" + }, + "scope": 3814, + "src": "3721:272:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3788, + "nodeType": "Block", + "src": "4511:61:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3783, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "4532:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3784, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3777, + "src": "4535:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4538:26:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 3782, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [3789, 3813], + "referencedDeclaration": 3813, + "src": "4528:3:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } }, - "id": 4188, + "id": 3786, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4186, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4170, - "src": "2815:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 4187, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4172, - "src": "2819:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2815:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2803:17:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 4190, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "2924:1:25", + "names": [], + "nodeType": "FunctionCall", + "src": "4528:37:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4176, - "id": 4191, + "functionReturnParameters": 3781, + "id": 3787, "nodeType": "Return", - "src": "2917:8:25" + "src": "4521:44:24" } ] }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 4193, + "documentation": { + "id": 3773, + "nodeType": "StructuredDocumentation", + "src": "3999:440:24", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3789, "implemented": true, "kind": "function", "modifiers": [], - "name": "div", + "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 4173, + "id": 3778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4170, + "id": 3775, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2619:9:25", + "scope": 3789, + "src": "4457:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1353,25 +2006,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4169, + "id": 3774, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2619:7:25", + "src": "4457:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4172, + "id": 3777, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2630:9:25", + "scope": 3789, + "src": "4468:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1379,32 +2032,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4171, + "id": 3776, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2630:7:25", + "src": "4468:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2618:22:25" + "src": "4456:22:24" }, "returnParameters": { - "id": 4176, + "id": 3781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4175, + "id": 3780, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2664:7:25", + "scope": 3789, + "src": "4502:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1412,56 +2065,52 @@ "typeString": "uint256" }, "typeName": { - "id": 4174, + "id": 3779, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2664:7:25", + "src": "4502:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2663:9:25" + "src": "4501:9:24" }, - "scope": 4215, - "src": "2606:326:25", + "scope": 3814, + "src": "4444:128:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4213, + "id": 3812, "nodeType": "Block", - "src": "3443:82:25", + "src": "5138:68:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4205, + "id": 3804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4203, + "id": 3802, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4197, - "src": "3461:1:25", + "referencedDeclaration": 3794, + "src": "5156:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1470,46 +2119,38 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 4204, + "id": 3803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3466:1:25", - "subdenomination": null, + "src": "5161:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3461:6:25", + "src": "5156:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3469:26:25", - "subdenomination": null, + "id": 3805, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "5164:12:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -1519,22 +2160,22 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 4202, + "id": 3801, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3453:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5148:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4207, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -1542,36 +2183,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3453:43:25", + "src": "5148:29:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4208, + "id": 3807, "nodeType": "ExpressionStatement", - "src": "3453:43:25" + "src": "5148:29:24" }, { "expression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4211, + "id": 3810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4209, + "id": 3808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "3513:1:25", + "referencedDeclaration": 3792, + "src": "5194:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1580,49 +2220,54 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "argumentTypes": null, - "id": 4210, + "id": 3809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4197, - "src": "3517:1:25", + "referencedDeclaration": 3794, + "src": "5198:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3513:5:25", + "src": "5194:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4201, - "id": 4212, + "functionReturnParameters": 3800, + "id": 3811, "nodeType": "Return", - "src": "3506:12:25" + "src": "5187:12:24" } ] }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 4214, + "documentation": { + "id": 3790, + "nodeType": "StructuredDocumentation", + "src": "4578:460:24", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3813, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 4198, + "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4195, + "id": 3792, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3389:9:25", + "scope": 3813, + "src": "5056:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1630,25 +2275,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4194, + "id": 3791, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3389:7:25", + "src": "5056:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4197, + "id": 3794, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3400:9:25", + "scope": 3813, + "src": "5067:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1656,32 +2301,58 @@ "typeString": "uint256" }, "typeName": { - "id": 4196, + "id": 3793, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3400:7:25", + "src": "5067:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "5078:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3795, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5078:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, "visibility": "internal" } ], - "src": "3388:22:25" + "src": "5055:50:24" }, "returnParameters": { - "id": 4201, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4200, + "id": 3799, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3434:7:25", + "scope": 3813, + "src": "5129:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1689,75 +2360,82 @@ "typeString": "uint256" }, "typeName": { - "id": 4199, + "id": 3798, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3434:7:25", + "src": "5129:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3433:9:25" + "src": "5128:9:24" }, - "scope": 4215, - "src": "3376:149:25", + "scope": 3814, + "src": "5043:163:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 4216, - "src": "589:2938:25" + "scope": 3815, + "src": "630:4578:24" } ], - "src": "0:3528:25" + "src": "33:5176:24" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "@openzeppelin/contracts/math/SafeMath.sol", "exportedSymbols": { - "SafeMath": [4215] + "SafeMath": [3814] }, - "id": 4216, + "id": 3815, + "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 4084, - "literals": ["solidity", "^", "0.5", ".0"], + "id": 3620, + "literals": ["solidity", ">=", "0.6", ".0", "<", "0.8", ".0"], "nodeType": "PragmaDirective", - "src": "0:23:25" + "src": "33:31:24" }, { + "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.", + "documentation": { + "id": 3621, + "nodeType": "StructuredDocumentation", + "src": "66:563:24", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, "fullyImplemented": true, - "id": 4215, - "linearizedBaseContracts": [4215], + "id": 3814, + "linearizedBaseContracts": [3814], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 4108, + "id": 3646, "nodeType": "Block", - "src": "901:109:25", + "src": "949:109:24", "statements": [ { - "assignments": [4094], + "assignments": [3632], "declarations": [ { "constant": false, - "id": 4094, + "id": 3632, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4108, - "src": "911:9:25", + "scope": 3646, + "src": "959:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1765,39 +2443,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4093, + "id": 3631, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "911:7:25", + "src": "959:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4098, + "id": 3636, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4097, + "id": 3635, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4095, + "id": 3633, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "923:1:25", + "referencedDeclaration": 3624, + "src": "971:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1806,118 +2481,336 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "argumentTypes": null, - "id": 4096, + "id": 3634, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4088, - "src": "927:1:25", + "referencedDeclaration": 3626, + "src": "975:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "923:5:25", + "src": "971:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "911:17:25" + "src": "959:17:24" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3638, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3632, + "src": "994:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 3639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3624, + "src": "999:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "994:6:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1002:29:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 3637, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "986:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "986:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3643, + "nodeType": "ExpressionStatement", + "src": "986:46:24" + }, + { + "expression": { + "id": 3644, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3632, + "src": "1050:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3630, + "id": 3645, + "nodeType": "Return", + "src": "1043:8:24" + } + ] + }, + "documentation": { + "id": 3622, + "nodeType": "StructuredDocumentation", + "src": "653:224:24", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 3647, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3624, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "895:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "895:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, + { + "constant": false, + "id": 3626, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "906:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "906:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "894:22:24" + }, + "returnParameters": { + "id": 3630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3629, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3647, + "src": "940:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "940:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:24" + }, + "scope": 3814, + "src": "882:176:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3663, + "nodeType": "Block", + "src": "1396:67:24", + "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, - "commonType": { + "id": 3658, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3650, + "src": "1417:1:24", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 4102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4100, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "946:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4101, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4086, - "src": "951:1:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "946:6:25", + } + }, + { + "id": 3659, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3652, + "src": "1420:1:24", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 4103, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 3660, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "954:29:25", - "subdenomination": null, + "src": "1423:32:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" }, - "value": "SafeMath: addition overflow" + "value": "SafeMath: subtraction overflow" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" } ], - "id": 4099, - "name": "require", + "id": 3657, + "name": "sub", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "938:7:25", + "overloadedDeclarations": [3664, 3692], + "referencedDeclaration": 3692, + "src": "1413:3:24", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 4104, + "id": 3661, "isConstant": false, "isLValue": false, "isPure": false, @@ -1925,55 +2818,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "938:46:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4105, - "nodeType": "ExpressionStatement", - "src": "938:46:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 4106, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4094, - "src": "1002:1:25", + "src": "1413:43:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4092, - "id": 4107, + "functionReturnParameters": 3656, + "id": 3662, "nodeType": "Return", - "src": "995:8:25" + "src": "1406:50:24" } ] }, - "documentation": "@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.", - "id": 4109, + "documentation": { + "id": 3648, + "nodeType": "StructuredDocumentation", + "src": "1064:260:24", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3664, "implemented": true, "kind": "function", "modifiers": [], - "name": "add", + "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 4089, + "id": 3653, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4086, + "id": 3650, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "847:9:25", + "scope": 3664, + "src": "1342:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1981,25 +2863,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4085, + "id": 3649, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "847:7:25", + "src": "1342:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4088, + "id": 3652, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "858:9:25", + "scope": 3664, + "src": "1353:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2007,32 +2889,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4087, + "id": 3651, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "858:7:25", + "src": "1353:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "846:22:25" + "src": "1341:22:24" }, "returnParameters": { - "id": 4092, + "id": 3656, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4091, + "id": 3655, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4109, - "src": "892:7:25", + "scope": 3664, + "src": "1387:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2040,56 +2922,52 @@ "typeString": "uint256" }, "typeName": { - "id": 4090, + "id": 3654, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "892:7:25", + "src": "1387:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "891:9:25" + "src": "1386:9:24" }, - "scope": 4215, - "src": "834:176:25", + "scope": 3814, + "src": "1329:134:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4133, + "id": 3691, "nodeType": "Block", - "src": "1341:112:25", + "src": "1849:92:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4121, + "id": 3679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4119, + "id": 3677, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4113, - "src": "1359:1:25", + "referencedDeclaration": 3669, + "src": "1867:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2098,41 +2976,34 @@ "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { - "argumentTypes": null, - "id": 4120, + "id": 3678, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4111, - "src": "1364:1:25", + "referencedDeclaration": 3667, + "src": "1872:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1359:6:25", + "src": "1867:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1367:32:25", - "subdenomination": null, + "id": 3680, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "1875:12:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -2142,22 +3013,22 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 4118, + "id": 3676, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "1351:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1859:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4123, + "id": 3681, "isConstant": false, "isLValue": false, "isPure": false, @@ -2165,26 +3036,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1351:49:25", + "src": "1859:29:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4124, + "id": 3682, "nodeType": "ExpressionStatement", - "src": "1351:49:25" + "src": "1859:29:24" }, { - "assignments": [4126], + "assignments": [3684], "declarations": [ { "constant": false, - "id": 4126, + "id": 3684, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4133, - "src": "1410:9:25", + "scope": 3691, + "src": "1898:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2192,39 +3065,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4125, + "id": 3683, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1410:7:25", + "src": "1898:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4130, + "id": 3688, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4129, + "id": 3687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4127, + "id": 3685, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4111, - "src": "1422:1:25", + "referencedDeclaration": 3667, + "src": "1910:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2233,66 +3103,70 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "argumentTypes": null, - "id": 4128, + "id": 3686, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4113, - "src": "1426:1:25", + "referencedDeclaration": 3669, + "src": "1914:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1422:5:25", + "src": "1910:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1410:17:25" + "src": "1898:17:24" }, { "expression": { - "argumentTypes": null, - "id": 4131, + "id": 3689, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4126, - "src": "1445:1:25", + "referencedDeclaration": 3684, + "src": "1933:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4117, - "id": 4132, + "functionReturnParameters": 3675, + "id": 3690, "nodeType": "Return", - "src": "1438:8:25" + "src": "1926:8:24" } ] }, - "documentation": "@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.", - "id": 4134, + "documentation": { + "id": 3665, + "nodeType": "StructuredDocumentation", + "src": "1469:280:24", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3692, "implemented": true, "kind": "function", "modifiers": [], "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 4114, + "id": 3672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4111, + "id": 3667, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1287:9:25", + "scope": 3692, + "src": "1767:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2300,25 +3174,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4110, + "id": 3666, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1287:7:25", + "src": "1767:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4113, + "id": 3669, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1298:9:25", + "scope": 3692, + "src": "1778:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2326,32 +3200,58 @@ "typeString": "uint256" }, "typeName": { - "id": 4112, + "id": 3668, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1298:7:25", + "src": "1778:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3671, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3692, + "src": "1789:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3670, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1789:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, "visibility": "internal" } ], - "src": "1286:22:25" + "src": "1766:50:24" }, "returnParameters": { - "id": 4117, + "id": 3675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4116, + "id": 3674, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4134, - "src": "1332:7:25", + "scope": 3692, + "src": "1840:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2359,53 +3259,50 @@ "typeString": "uint256" }, "typeName": { - "id": 4115, + "id": 3673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1332:7:25", + "src": "1840:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1331:9:25" + "src": "1839:9:24" }, - "scope": 4215, - "src": "1274:179:25", + "scope": 3814, + "src": "1754:187:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4167, + "id": 3726, "nodeType": "Block", - "src": "1760:391:25", + "src": "2255:392:24", "statements": [ { "condition": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4145, + "id": 3704, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4143, + "id": 3702, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "1991:1:25", + "referencedDeclaration": 3695, + "src": "2487:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2414,75 +3311,71 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 4144, + "id": 3703, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1996:1:25", - "subdenomination": null, + "src": "2492:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1991:6:25", + "src": "2487:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": null, - "id": 4149, + "id": 3708, "nodeType": "IfStatement", - "src": "1987:45:25", + "src": "2483:45:24", "trueBody": { - "id": 4148, + "id": 3707, "nodeType": "Block", - "src": "1999:33:25", + "src": "2495:33:24", "statements": [ { "expression": { - "argumentTypes": null, "hexValue": "30", - "id": 4146, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2020:1:25", - "subdenomination": null, + "src": "2516:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 4142, - "id": 4147, + "functionReturnParameters": 3701, + "id": 3706, "nodeType": "Return", - "src": "2013:8:25" + "src": "2509:8:24" } ] } }, { - "assignments": [4151], + "assignments": [3710], "declarations": [ { "constant": false, - "id": 4151, + "id": 3710, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4167, - "src": "2042:9:25", + "scope": 3726, + "src": "2538:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2490,39 +3383,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4150, + "id": 3709, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2042:7:25", + "src": "2538:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4155, + "id": 3714, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4154, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4152, + "id": 3711, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "2054:1:25", + "referencedDeclaration": 3695, + "src": "2550:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2531,61 +3421,56 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "argumentTypes": null, - "id": 4153, + "id": 3712, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "2058:1:25", + "referencedDeclaration": 3697, + "src": "2554:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2054:5:25", + "src": "2550:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2042:17:25" + "src": "2538:17:24" }, { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4161, + "id": 3720, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4159, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4157, + "id": 3716, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "2077:1:25", + "referencedDeclaration": 3710, + "src": "2573:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2594,19 +3479,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "argumentTypes": null, - "id": 4158, + "id": 3717, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4136, - "src": "2081:1:25", + "referencedDeclaration": 3695, + "src": "2577:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2077:5:25", + "src": "2573:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2615,66 +3499,288 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "argumentTypes": null, - "id": 4160, + "id": 3719, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4138, - "src": "2086:1:25", + "referencedDeclaration": 3697, + "src": "2582:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2077:10:25", + "src": "2573:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 3721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2585:35:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 3715, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2565:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2565:56:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3723, + "nodeType": "ExpressionStatement", + "src": "2565:56:24" + }, + { + "expression": { + "id": 3724, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3710, + "src": "2639:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3701, + "id": 3725, + "nodeType": "Return", + "src": "2632:8:24" + } + ] + }, + "documentation": { + "id": 3693, + "nodeType": "StructuredDocumentation", + "src": "1947:236:24", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 3727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3695, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3727, + "src": "2201:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2201:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3697, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3727, + "src": "2212:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2212:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2200:22:24" + }, + "returnParameters": { + "id": 3701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3700, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3727, + "src": "2246:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2245:9:24" + }, + "scope": 3814, + "src": "2188:459:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3743, + "nodeType": "Block", + "src": "3176:63:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "3197:1:24", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 4162, + "id": 3739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "3200:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 3740, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2089:35:25", - "subdenomination": null, + "src": "3203:28:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" }, - "value": "SafeMath: multiplication overflow" + "value": "SafeMath: division by zero" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" } ], - "id": 4156, - "name": "require", + "id": 3737, + "name": "div", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2069:7:25", + "overloadedDeclarations": [3744, 3772], + "referencedDeclaration": 3772, + "src": "3193:3:24", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" } }, - "id": 4163, + "id": 3741, "isConstant": false, "isLValue": false, "isPure": false, @@ -2682,55 +3788,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2069:56:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4164, - "nodeType": "ExpressionStatement", - "src": "2069:56:25" - }, - { - "expression": { - "argumentTypes": null, - "id": 4165, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "2143:1:25", + "src": "3193:39:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4142, - "id": 4166, + "functionReturnParameters": 3736, + "id": 3742, "nodeType": "Return", - "src": "2136:8:25" + "src": "3186:46:24" } ] }, - "documentation": "@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.", - "id": 4168, + "documentation": { + "id": 3728, + "nodeType": "StructuredDocumentation", + "src": "2653:451:24", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3744, "implemented": true, "kind": "function", "modifiers": [], - "name": "mul", + "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 4139, + "id": 3733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4136, + "id": 3730, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1706:9:25", + "scope": 3744, + "src": "3122:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2738,25 +3833,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4135, + "id": 3729, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1706:7:25", + "src": "3122:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4138, + "id": 3732, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1717:9:25", + "scope": 3744, + "src": "3133:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2764,32 +3859,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4137, + "id": 3731, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1717:7:25", + "src": "3133:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1705:22:25" + "src": "3121:22:24" }, "returnParameters": { - "id": 4142, + "id": 3736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4141, + "id": 3735, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4168, - "src": "1751:7:25", + "scope": 3744, + "src": "3167:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2797,56 +3892,52 @@ "typeString": "uint256" }, "typeName": { - "id": 4140, + "id": 3734, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1751:7:25", + "src": "3167:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "1750:9:25" + "src": "3166:9:24" }, - "scope": 4215, - "src": "1693:458:25", + "scope": 3814, + "src": "3109:130:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4192, + "id": 3771, "nodeType": "Block", - "src": "2673:259:25", + "src": "3816:177:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4180, + "id": 3759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4178, + "id": 3757, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4172, - "src": "2757:1:25", + "referencedDeclaration": 3749, + "src": "3834:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2855,46 +3946,38 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 4179, + "id": 3758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2761:1:25", - "subdenomination": null, + "src": "3838:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "2757:5:25", + "src": "3834:5:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 4181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2764:28:25", - "subdenomination": null, + "id": 3760, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3751, + "src": "3841:12:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -2904,22 +3987,22 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 4177, + "id": 3756, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "2749:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3826:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4182, + "id": 3761, "isConstant": false, "isLValue": false, "isPure": false, @@ -2927,26 +4010,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2749:44:25", + "src": "3826:28:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4183, + "id": 3762, "nodeType": "ExpressionStatement", - "src": "2749:44:25" + "src": "3826:28:24" }, { - "assignments": [4185], + "assignments": [3764], "declarations": [ { "constant": false, - "id": 4185, + "id": 3764, + "mutability": "mutable", "name": "c", "nodeType": "VariableDeclaration", - "scope": 4192, - "src": "2803:9:25", + "scope": 3771, + "src": "3864:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2954,39 +4039,36 @@ "typeString": "uint256" }, "typeName": { - "id": 4184, + "id": 3763, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2803:7:25", + "src": "3864:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "id": 4189, + "id": 3768, "initialValue": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4188, + "id": 3767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4186, + "id": 3765, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4170, - "src": "2815:1:25", + "referencedDeclaration": 3747, + "src": "3876:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2995,66 +4077,304 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "argumentTypes": null, - "id": 4187, + "id": 3766, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4172, - "src": "2819:1:25", + "referencedDeclaration": 3749, + "src": "3880:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2815:5:25", + "src": "3876:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2803:17:25" + "src": "3864:17:24" }, { "expression": { - "argumentTypes": null, - "id": 4190, + "id": 3769, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "2924:1:25", + "referencedDeclaration": 3764, + "src": "3985:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4176, - "id": 4191, + "functionReturnParameters": 3755, + "id": 3770, "nodeType": "Return", - "src": "2917:8:25" + "src": "3978:8:24" } ] }, - "documentation": "@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 4193, + "documentation": { + "id": 3745, + "nodeType": "StructuredDocumentation", + "src": "3245:471:24", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3772, "implemented": true, "kind": "function", "modifiers": [], "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 4173, + "id": 3752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3747, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3734:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3734:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3749, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3745:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3745:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3751, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3756:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3750, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3756:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3733:50:24" + }, + "returnParameters": { + "id": 3755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3754, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3772, + "src": "3807:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3807:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3806:9:24" + }, + "scope": 3814, + "src": "3721:272:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3788, + "nodeType": "Block", + "src": "4511:61:24", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3783, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "4532:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3784, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3777, + "src": "4535:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4538:26:24", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 3782, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [3789, 3813], + "referencedDeclaration": 3813, + "src": "4528:3:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4528:37:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3781, + "id": 3787, + "nodeType": "Return", + "src": "4521:44:24" + } + ] + }, + "documentation": { + "id": 3773, + "nodeType": "StructuredDocumentation", + "src": "3999:440:24", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3778, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4170, + "id": 3775, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2619:9:25", + "scope": 3789, + "src": "4457:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3062,25 +4382,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4169, + "id": 3774, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2619:7:25", + "src": "4457:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4172, + "id": 3777, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2630:9:25", + "scope": 3789, + "src": "4468:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3088,32 +4408,32 @@ "typeString": "uint256" }, "typeName": { - "id": 4171, + "id": 3776, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2630:7:25", + "src": "4468:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2618:22:25" + "src": "4456:22:24" }, "returnParameters": { - "id": 4176, + "id": 3781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4175, + "id": 3780, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4193, - "src": "2664:7:25", + "scope": 3789, + "src": "4502:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3121,56 +4441,52 @@ "typeString": "uint256" }, "typeName": { - "id": 4174, + "id": 3779, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2664:7:25", + "src": "4502:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "2663:9:25" + "src": "4501:9:24" }, - "scope": 4215, - "src": "2606:326:25", + "scope": 3814, + "src": "4444:128:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" }, { "body": { - "id": 4213, + "id": 3812, "nodeType": "Block", - "src": "3443:82:25", + "src": "5138:68:24", "statements": [ { "expression": { - "argumentTypes": null, "arguments": [ { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4205, + "id": 3804, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4203, + "id": 3802, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4197, - "src": "3461:1:25", + "referencedDeclaration": 3794, + "src": "5156:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3179,46 +4495,38 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "argumentTypes": null, "hexValue": "30", - "id": 4204, + "id": 3803, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3466:1:25", - "subdenomination": null, + "src": "5161:1:24", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "3461:6:25", + "src": "5156:6:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3469:26:25", - "subdenomination": null, + "id": 3805, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3796, + "src": "5164:12:24", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } } ], "expression": { @@ -3228,22 +4536,22 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } ], - "id": 4202, + "id": 3801, "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [4233, 4234], - "referencedDeclaration": 4234, - "src": "3453:7:25", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5148:7:24", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4207, + "id": 3806, "isConstant": false, "isLValue": false, "isPure": false, @@ -3251,36 +4559,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3453:43:25", + "src": "5148:29:24", + "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4208, + "id": 3807, "nodeType": "ExpressionStatement", - "src": "3453:43:25" + "src": "5148:29:24" }, { "expression": { - "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4211, + "id": 3810, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "argumentTypes": null, - "id": 4209, + "id": 3808, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "3513:1:25", + "referencedDeclaration": 3792, + "src": "5194:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3289,49 +4596,54 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "argumentTypes": null, - "id": 4210, + "id": 3809, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4197, - "src": "3517:1:25", + "referencedDeclaration": 3794, + "src": "5198:1:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3513:5:25", + "src": "5194:5:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 4201, - "id": 4212, + "functionReturnParameters": 3800, + "id": 3811, "nodeType": "Return", - "src": "3506:12:25" + "src": "5187:12:24" } ] }, - "documentation": "@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.", - "id": 4214, + "documentation": { + "id": 3790, + "nodeType": "StructuredDocumentation", + "src": "4578:460:24", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3813, "implemented": true, "kind": "function", "modifiers": [], "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 4198, + "id": 3797, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4195, + "id": 3792, + "mutability": "mutable", "name": "a", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3389:9:25", + "scope": 3813, + "src": "5056:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3339,25 +4651,25 @@ "typeString": "uint256" }, "typeName": { - "id": 4194, + "id": 3791, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3389:7:25", + "src": "5056:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" }, { "constant": false, - "id": 4197, + "id": 3794, + "mutability": "mutable", "name": "b", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3400:9:25", + "scope": 3813, + "src": "5067:9:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3365,32 +4677,58 @@ "typeString": "uint256" }, "typeName": { - "id": 4196, + "id": 3793, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3400:7:25", + "src": "5067:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3796, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 3813, + "src": "5078:26:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3795, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5078:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, "visibility": "internal" } ], - "src": "3388:22:25" + "src": "5055:50:24" }, "returnParameters": { - "id": 4201, + "id": 3800, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4200, + "id": 3799, + "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", - "scope": 4214, - "src": "3434:7:25", + "scope": 3813, + "src": "5129:7:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3398,66 +4736,49 @@ "typeString": "uint256" }, "typeName": { - "id": 4199, + "id": 3798, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3434:7:25", + "src": "5129:7:24", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, "visibility": "internal" } ], - "src": "3433:9:25" + "src": "5128:9:24" }, - "scope": 4215, - "src": "3376:149:25", + "scope": 3814, + "src": "5043:163:24", "stateMutability": "pure", - "superFunction": null, + "virtual": false, "visibility": "internal" } ], - "scope": 4216, - "src": "589:2938:25" + "scope": 3815, + "src": "630:4578:24" } ], - "src": "0:3528:25" + "src": "33:5176:24" }, "compiler": { "name": "solc", - "version": "0.5.12+commit.7709ece9.Emscripten.clang" - }, - "networks": { - "3": { - "events": {}, - "links": {}, - "address": "0xB01d9901BB86a3Fcc49E3db39fbe414F8775C8Bb", - "transactionHash": "0x2dbe206d5165644b6623f980a4e4a4cec6ecef055bf3ff253556620181919b63" - }, - "42": { - "events": {}, - "links": {}, - "address": "0xB8E8120e5616Fe345b439ea29922b924DF0B8A13", - "transactionHash": "0xa826915be0b2f449bc213d451816f57f93f24ab268e810c8c0b301d92a825577" - }, - "5777": { - "events": {}, - "links": {}, - "address": "0xbF444091DBE3D83e720B70f504c4043C30AbFc8d", - "transactionHash": "0xc8e1e203f338fc21ec6088a1c5bf2705b8efa7ab3432c1afc7acbaeab6734275" - } + "version": "0.7.6+commit.7338295f.Emscripten.clang" }, - "schemaVersion": "3.0.20", - "updatedAt": "2020-01-30T11:37:34.446Z", - "networkType": "ethereum", + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2021-01-22T04:14:17.149Z", "devdoc": { - "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", - "methods": {} + "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", + "kind": "dev", + "methods": {}, + "version": 1 }, "userdoc": { - "methods": {} + "kind": "user", + "methods": {}, + "version": 1 } } diff --git a/contracts/Migrations.sol b/contracts/Migrations.sol index c378ffb..8bc7d72 100644 --- a/contracts/Migrations.sol +++ b/contracts/Migrations.sol @@ -1,23 +1,25 @@ -pragma solidity >=0.4.21 <0.6.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; contract Migrations { - address public owner; - uint public last_completed_migration; + address public owner; + uint256 public last_completed_migration; - constructor() public { - owner = msg.sender; - } + constructor() { + owner = msg.sender; + } - modifier restricted() { - if (msg.sender == owner) _; - } + modifier restricted() { + if (msg.sender == owner) _; + } - function setCompleted(uint completed) public restricted { - last_completed_migration = completed; - } + function setCompleted(uint256 completed) public restricted { + last_completed_migration = completed; + } - function upgrade(address new_address) public restricted { - Migrations upgraded = Migrations(new_address); - upgraded.setCompleted(last_completed_migration); - } + function upgrade(address new_address) public restricted { + Migrations upgraded = Migrations(new_address); + upgraded.setCompleted(last_completed_migration); + } } diff --git a/contracts/core/ContestBracketRegistry.sol b/contracts/core/ContestBracketRegistry.sol index e0b5abb..ecf9f7c 100644 --- a/contracts/core/ContestBracketRegistry.sol +++ b/contracts/core/ContestBracketRegistry.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "./ContestTeamRegistry.sol"; import "../roles/ContestRoleManager.sol"; @@ -8,7 +10,7 @@ import "../roles/ContestRoleManager.sol"; /** @notice Controls the evaluation process by the judges and publishing of final results. */ -contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { +abstract contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { using SafeMath for uint256; /// @notice Represetns a judge evaluating the teams in the contest. @@ -58,7 +60,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { ///@dev This class needs to be inherited - internal visibility /// @param initialOrganizer Represents the organizer who owns the contest, initially. - constructor(address initialOrganizer) internal ContestTeamRegistry() ContestRoleManager(initialOrganizer) {} + constructor(address initialOrganizer) ContestTeamRegistry() ContestRoleManager(initialOrganizer) {} /** @notice Allows a judge to submit its evaluation for the teams competing in the contest. The evaluation for all @@ -164,7 +166,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { @notice Closes the registration process @dev Overwritten to add modifier for access control. */ - function closeRegistration() external registrationIsOpen onlyOrganizer { + function closeRegistration() external override registrationIsOpen onlyOrganizer { super._closeRegistration(); } @@ -172,7 +174,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { @notice Opens the registration process @dev Overwritten to add modifier for access control. */ - function openRegistration() external registrationIsClosed onlyOrganizer { + function openRegistration() external override registrationIsClosed onlyOrganizer { super._openRegistration(); } @@ -180,7 +182,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { @notice Closes the proposal submission process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function closeSubmission() external submissionIsOpen onlyOrganizer { + function closeSubmission() external override submissionIsOpen onlyOrganizer { super._closeSubmission(); } @@ -188,7 +190,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { @notice Opens the proposal submission process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function openSubmission() external submissionIsClosed onlyOrganizer { + function openSubmission() external override submissionIsClosed onlyOrganizer { super._openSubmission(); } @@ -229,7 +231,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { } /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members. - function _addJudge(address account) internal { + function _addJudge(address account) internal override { // TODO: check if can re-add previously removed judges to be added. // require(judgeByAddress[account].judgeAddress == address(0)); super._addJudge(account); @@ -241,7 +243,7 @@ contract ContestBracketRegistry is ContestTeamRegistry, ContestRoleManager { } /// @dev Overrides {JudgeRole} internal method, to properly update internal storage related to team members. - function _removeJudge(address account) internal { + function _removeJudge(address account) internal override { super._removeJudge(account); Judge storage judge = judgeByAddress[account]; judge.active = false; diff --git a/contracts/core/ContestTeam.sol b/contracts/core/ContestTeam.sol index 23ba879..d20b9e4 100644 --- a/contracts/core/ContestTeam.sol +++ b/contracts/core/ContestTeam.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "../roles/AttendeeRole.sol"; import "../payment/Payable.sol"; import "../lifecycle/Pausable.sol"; @@ -38,7 +40,7 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { ///@dev This class needs to be inherited - internal visibility /// @param initialAttendee Represents the attendee who owns the contest, initially. - constructor(address initialAttendee) public Payable() AttendeeRole(initialAttendee) Pausable() {} + constructor(address initialAttendee) Payable() AttendeeRole(initialAttendee) Pausable() {} /** * @notice Splits the available's contract balance between active team members. @@ -73,7 +75,7 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { // this issue in case a bug is found (tests do not show bugs, but untested scenarioes may rise). require(distributedPrize == expectedDistribution, "Invalid split between active members"); require(address(this).balance == reservedBalance, "Reserved balanced was not updated properly"); - emit PrizeSplit(msg.sender, availableBalance, activeTeamMembersCount, prize, now); + emit PrizeSplit(msg.sender, availableBalance, activeTeamMembersCount, prize, block.timestamp); } /** @@ -90,7 +92,7 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { // Updates contract's reserved balance, so future splits will be correctly calculated. reservedBalance = reservedBalance.sub(amount); msg.sender.transfer(amount); - emit Withdraw(msg.sender, amount, now); + emit Withdraw(msg.sender, amount, block.timestamp); } /// @notice Gets the active members in the team. @@ -124,7 +126,7 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { @notice Trigger the paused state. @dev Implements the onlyAttendee modifier for access control. */ - function pause() public onlyAttendee { + function pause() public override onlyAttendee { super.pause(); } @@ -132,12 +134,12 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { @notice Lifts the paused state. @dev Implements the onlyAttendee modifier for access control. */ - function unpause() public onlyAttendee { + function unpause() public override onlyAttendee { super.unpause(); } /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members. - function _addAttendee(address account) internal whenNotPaused { + function _addAttendee(address account) internal override whenNotPaused { super._addAttendee(account); teamMembers.push(account); activeTeamMembers[account] = true; @@ -145,7 +147,7 @@ contract ContestTeam is Payable, AttendeeRole, Pausable { } /// @dev Overrides {AttendeeRole} internal method, to properly update internal storage related to team members. - function _removeAttendee(address account) internal whenNotPaused { + function _removeAttendee(address account) internal override whenNotPaused { // Makes sure the contract have at least of member/owner. require(activeTeamMembersCount > 1, "Cannot remove last member from contract"); super._removeAttendee(account); diff --git a/contracts/core/ContestTeamRegistry.sol b/contracts/core/ContestTeamRegistry.sol index 0c8fb19..220f153 100644 --- a/contracts/core/ContestTeamRegistry.sol +++ b/contracts/core/ContestTeamRegistry.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; /** @notice Controls the registration of teams and the subsequent proposal submission process @@ -12,7 +14,7 @@ import "openzeppelin-solidity/contracts/math/SafeMath.sol"; TODO: Ability to refund members once they show up to contest. TODO: Add mapping for team members. */ -contract ContestTeamRegistry { +abstract contract ContestTeamRegistry { using SafeMath for uint256; /// @notice Represents a team participating in a contest. @@ -79,9 +81,6 @@ contract ContestTeamRegistry { _; } - ///@dev This class needs to be inherited. - constructor() internal {} - /** @notice Returns the stored information of a team @param teamId {uint256} the team's unique identifier returned on registration @@ -164,7 +163,7 @@ contract ContestTeamRegistry { @notice Closes the registration process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function closeRegistration() external registrationIsOpen { + function closeRegistration() virtual external registrationIsOpen { _closeRegistration(); } @@ -172,7 +171,7 @@ contract ContestTeamRegistry { @notice Opens the registration process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function openRegistration() external registrationIsClosed { + function openRegistration() virtual external registrationIsClosed { _openRegistration(); } @@ -188,7 +187,7 @@ contract ContestTeamRegistry { @notice Closes the proposal submission process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function closeSubmission() external submissionIsOpen { + function closeSubmission() virtual external submissionIsOpen { _closeSubmission(); } @@ -196,7 +195,7 @@ contract ContestTeamRegistry { @notice Opens the proposal submission process @dev Should be overwritten on inherited contract to add modifier or require statements for access control. */ - function openSubmission() external submissionIsClosed { + function openSubmission() virtual external submissionIsClosed { _openSubmission(); } diff --git a/contracts/core/Hackathon.sol b/contracts/core/Hackathon.sol index 3f57a19..d51fb0f 100644 --- a/contracts/core/Hackathon.sol +++ b/contracts/core/Hackathon.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "./ContestBracketRegistry.sol"; import "../payment/Payable.sol"; @@ -70,7 +72,6 @@ contract Hackathon is Payable, ContestBracketRegistry { @param _description {bytes32} Hackathon's description. Optional. */ constructor(uint256 _id, bytes32 _name, bytes32 _description, address initialOrganizer) - public ContestBracketRegistry(initialOrganizer) { require(_name[0] != 0, "Invalid name"); @@ -97,7 +98,7 @@ contract Hackathon is Payable, ContestBracketRegistry { secondPlacePrize = Prize(secondPrize, false); thirdPlacePrize = Prize(thirdPrize, false); prizesAllocated = true; - emit PrizeAllocation(firstPrize, secondPrize, thirdPrize, msg.sender, now); + emit PrizeAllocation(firstPrize, secondPrize, thirdPrize, msg.sender, block.timestamp); } /** @@ -137,9 +138,9 @@ contract Hackathon is Payable, ContestBracketRegistry { revert("Invalid address. Address check failed. Should not reach this point."); } - emit Withdraw(teamAddress, amount, rankPosition, msg.sender, now); + emit Withdraw(teamAddress, amount, rankPosition, msg.sender, block.timestamp); // Pays winner using team addres. - IPayable(teamAddress).deposit.value(amount)(); + IPayable(teamAddress).deposit{value: amount}(); } /** diff --git a/contracts/factory/ContestTeamFactory.sol b/contracts/factory/ContestTeamFactory.sol index 49add9b..007261d 100644 --- a/contracts/factory/ContestTeamFactory.sol +++ b/contracts/factory/ContestTeamFactory.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "../core/ContestTeam.sol"; diff --git a/contracts/factory/HackathonFactory.sol b/contracts/factory/HackathonFactory.sol index e1c686c..ee36dca 100644 --- a/contracts/factory/HackathonFactory.sol +++ b/contracts/factory/HackathonFactory.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "../core/Hackathon.sol"; diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index 210fec3..b72d0c3 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -1,4 +1,6 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; /** * @dev Contract module which allows children to implement an emergency stop @@ -14,7 +16,7 @@ pragma solidity ^0.5.0; * access control rule needded) to avoid the inherited contract being paused/unpaused * by unauthorized parties. */ -contract Pausable { +abstract contract Pausable { /// @dev emitted when the pause is triggered. event Paused(address account); @@ -24,7 +26,7 @@ contract Pausable { bool private _paused; /// @dev Initializes the contract in unpaused state. - constructor() internal { + constructor() { _paused = false; } @@ -54,7 +56,7 @@ contract Pausable { @dev Must be inherited to apply proper access control before calling internal implementation on {_pause()}. */ - function pause() public { + function pause() virtual public { _pause(); } @@ -63,18 +65,18 @@ contract Pausable { @dev Must be inherited to apply proper access control before calling internal implementation on {_unpause()}. */ - function unpause() public { + function unpause() virtual public { _unpause(); } /// @dev Internal implementation that triggers the paused state. - function _pause() internal whenNotPaused { + function _pause() virtual internal whenNotPaused { _paused = true; emit Paused(msg.sender); } /// @dev Internal implementation that lifts the paused state. - function _unpause() public whenPaused { + function _unpause() virtual public whenPaused { _paused = false; emit Unpaused(msg.sender); } diff --git a/contracts/mocks/AttendeeRoleMock.sol b/contracts/mocks/AttendeeRoleMock.sol index 640a5d5..b4c8687 100644 --- a/contracts/mocks/AttendeeRoleMock.sol +++ b/contracts/mocks/AttendeeRoleMock.sol @@ -1,34 +1,13 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// SPDX-License-Identifier: UNLICENSED // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol -pragma solidity ^0.5.0; +pragma solidity >=0.7.0 <0.8.0; import "../roles/AttendeeRole.sol"; contract AttendeeRoleMock is AttendeeRole { - constructor() public AttendeeRole(msg.sender) {} + constructor() AttendeeRole(msg.sender) {} function removeAttendee(address account) public { _removeAttendee(account); @@ -39,7 +18,7 @@ contract AttendeeRoleMock is AttendeeRole { } // Causes a compilation error if super._removeAttendee is not internal - function _removeAttendee(address account) internal { + function _removeAttendee(address account) internal override { super._removeAttendee(account); } } diff --git a/contracts/mocks/ContestBracketRegistryMock.sol b/contracts/mocks/ContestBracketRegistryMock.sol index 06a1f18..876e956 100644 --- a/contracts/mocks/ContestBracketRegistryMock.sol +++ b/contracts/mocks/ContestBracketRegistryMock.sol @@ -1,8 +1,10 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "../core/ContestBracketRegistry.sol"; contract ContestBracketRegistryMock is ContestBracketRegistry { - constructor() public ContestBracketRegistry(msg.sender) {} + constructor() ContestBracketRegistry(msg.sender) {} } diff --git a/contracts/mocks/ContestRoleManagerMock.sol b/contracts/mocks/ContestRoleManagerMock.sol index 2216611..aba2fb8 100644 --- a/contracts/mocks/ContestRoleManagerMock.sol +++ b/contracts/mocks/ContestRoleManagerMock.sol @@ -1,9 +1,11 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "../roles/ContestRoleManager.sol"; contract ContestRoleManagerMock is ContestRoleManager { - constructor() public ContestRoleManager(msg.sender) {} + constructor() ContestRoleManager(msg.sender) {} function getActiveOrganizersCount() public view returns (uint256) { return activeOrganizersCount; diff --git a/contracts/mocks/ContestTeamMock.sol b/contracts/mocks/ContestTeamMock.sol index c884eb7..fd7eaa0 100644 --- a/contracts/mocks/ContestTeamMock.sol +++ b/contracts/mocks/ContestTeamMock.sol @@ -1,13 +1,15 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "../core/ContestTeam.sol"; contract ContestTeamMock is ContestTeam { using SafeMath for uint256; - constructor() public ContestTeam(msg.sender) {} + constructor() ContestTeam(msg.sender) {} // Helper testing functions. function getReservedBalance() public view returns (uint256) { diff --git a/contracts/mocks/ContestTeamRegistryMock.sol b/contracts/mocks/ContestTeamRegistryMock.sol index 5402efb..96b20c7 100644 --- a/contracts/mocks/ContestTeamRegistryMock.sol +++ b/contracts/mocks/ContestTeamRegistryMock.sol @@ -1,9 +1,11 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "../core/ContestTeamRegistry.sol"; contract ContestTeamRegistryMock is ContestTeamRegistry { - constructor() public ContestTeamRegistry() {} + constructor() ContestTeamRegistry() {} function getApprovedTeamsCount() external view returns (uint256) { return approvedTeamsCount; diff --git a/contracts/mocks/HackathonMock.sol b/contracts/mocks/HackathonMock.sol index e2a6263..f9ecc17 100644 --- a/contracts/mocks/HackathonMock.sol +++ b/contracts/mocks/HackathonMock.sol @@ -1,12 +1,11 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "../core/Hackathon.sol"; contract HackathonMock is Hackathon { - constructor(uint256 _id, bytes32 _name, bytes32 _description) - public - Hackathon(_id, _name, _description, msg.sender) - { + constructor(uint256 _id, bytes32 _name, bytes32 _description) Hackathon(_id, _name, _description, msg.sender) { // } diff --git a/contracts/mocks/JudgeRoleMock.sol b/contracts/mocks/JudgeRoleMock.sol index 2d9da0f..40b941a 100644 --- a/contracts/mocks/JudgeRoleMock.sol +++ b/contracts/mocks/JudgeRoleMock.sol @@ -1,38 +1,17 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// SPDX-License-Identifier: UNLICENSED // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol -pragma solidity ^0.5.0; +pragma solidity >=0.7.0 <0.8.0; import "../roles/JudgeRole.sol"; contract JudgeRoleMock is JudgeRole { - constructor() public JudgeRole() { + constructor() JudgeRole() { super._addJudge(msg.sender); } - function addJudge(address account) public onlyJudge { + function addJudge(address account) public override onlyJudge { super._addJudge(account); } @@ -45,7 +24,7 @@ contract JudgeRoleMock is JudgeRole { } // Causes a compilation error if super._removeJudge is not internal - function _removeJudge(address account) internal { + function _removeJudge(address account) internal override { super._removeJudge(account); } } diff --git a/contracts/mocks/OrganizerRoleMock.sol b/contracts/mocks/OrganizerRoleMock.sol index 9d1b549..607b22a 100644 --- a/contracts/mocks/OrganizerRoleMock.sol +++ b/contracts/mocks/OrganizerRoleMock.sol @@ -1,34 +1,13 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// SPDX-License-Identifier: UNLICENSED // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/mocks/MinterRoleMock.sol -pragma solidity ^0.5.0; +pragma solidity >=0.7.0 <0.8.0; import "../roles/OrganizerRole.sol"; contract OrganizerRoleMock is OrganizerRole { - constructor() public OrganizerRole(msg.sender) {} + constructor() OrganizerRole(msg.sender) {} function removeOrganizer(address account) public { _removeOrganizer(account); @@ -39,7 +18,7 @@ contract OrganizerRoleMock is OrganizerRole { } // Causes a compilation error if super._removeOrganizer is not internal - function _removeOrganizer(address account) internal { + function _removeOrganizer(address account) internal override { super._removeOrganizer(account); } } diff --git a/contracts/mocks/PausableMock.sol b/contracts/mocks/PausableMock.sol index 6f425df..ffe619d 100644 --- a/contracts/mocks/PausableMock.sol +++ b/contracts/mocks/PausableMock.sol @@ -1,19 +1,21 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "../lifecycle/Pausable.sol"; import "../roles/OrganizerRole.sol"; // mock class using Pausable contract PausableMock is Pausable, OrganizerRole { - constructor() public Pausable() OrganizerRole(msg.sender) { + constructor() Pausable() OrganizerRole(msg.sender) { // Do nothing. } - function pause() public onlyOrganizer { + function pause() public onlyOrganizer override { super.pause(); } - function unpause() public onlyOrganizer { + function unpause() public onlyOrganizer override { super.unpause(); } diff --git a/contracts/payment/IPayable.sol b/contracts/payment/IPayable.sol index f2e704c..2678572 100644 --- a/contracts/payment/IPayable.sol +++ b/contracts/payment/IPayable.sol @@ -1,4 +1,6 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; /// @notice Defines the structure that a payable contract must implement to receive funds. interface IPayable { diff --git a/contracts/payment/Payable.sol b/contracts/payment/Payable.sol index 5e3f892..5ff0173 100644 --- a/contracts/payment/Payable.sol +++ b/contracts/payment/Payable.sol @@ -1,4 +1,6 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; import "./IPayable.sol"; @@ -8,8 +10,8 @@ contract Payable is IPayable { event Deposit(address indexed from, uint256 amount, uint256 indexed datetime); /// @notice Allows the contract to receive funds. - function deposit() external payable { + function deposit() external payable override { require(msg.value > 0, "msg.value must be greather than 0"); - emit Deposit(msg.sender, msg.value, now); + emit Deposit(msg.sender, msg.value, block.timestamp); } } diff --git a/contracts/roles/AttendeeRole.sol b/contracts/roles/AttendeeRole.sol index 270ffd5..499cbc9 100644 --- a/contracts/roles/AttendeeRole.sol +++ b/contracts/roles/AttendeeRole.sol @@ -1,31 +1,10 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; -import "openzeppelin-solidity/contracts/access/Roles.sol"; +import "./Roles.sol"; /** @notice Implements a access control for an Attendee role, @@ -33,7 +12,7 @@ import "openzeppelin-solidity/contracts/access/Roles.sol"; @dev not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info. */ -contract AttendeeRole { +abstract contract AttendeeRole { using Roles for Roles.Role; event AttendeeAdded(address indexed account); @@ -41,7 +20,7 @@ contract AttendeeRole { Roles.Role private _attendees; - constructor(address initialAttendee) internal { + constructor(address initialAttendee) { require(initialAttendee != address(0), "Invalid zero address"); _addAttendee(initialAttendee); } @@ -55,20 +34,20 @@ contract AttendeeRole { return _attendees.has(account); } - function addAttendee(address account) public onlyAttendee { + function addAttendee(address account) virtual public onlyAttendee { _addAttendee(account); } - function renounceAttendee() public { + function renounceAttendee() virtual public { _removeAttendee(msg.sender); } - function _addAttendee(address account) internal { + function _addAttendee(address account) virtual internal { _attendees.add(account); emit AttendeeAdded(account); } - function _removeAttendee(address account) internal { + function _removeAttendee(address account) virtual internal { _attendees.remove(account); emit AttendeeRemoved(account); } diff --git a/contracts/roles/ContestRoleManager.sol b/contracts/roles/ContestRoleManager.sol index 3b340a6..46f324a 100644 --- a/contracts/roles/ContestRoleManager.sol +++ b/contracts/roles/ContestRoleManager.sol @@ -1,6 +1,8 @@ -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED -import "openzeppelin-solidity/contracts/math/SafeMath.sol"; +pragma solidity >=0.7.0 <0.8.0; + +import "@openzeppelin/contracts/math/SafeMath.sol"; import "../roles/OrganizerRole.sol"; import "../roles/JudgeRole.sol"; @@ -8,7 +10,7 @@ import "../roles/JudgeRole.sol"; @notice Extends the roles OrganizerRole and JudgeRole and adds access control to public methods, plus controls judges and organizers accounts. */ -contract ContestRoleManager is OrganizerRole, JudgeRole { +abstract contract ContestRoleManager is OrganizerRole, JudgeRole { using SafeMath for uint256; // Judge's helpers @@ -20,9 +22,9 @@ contract ContestRoleManager is OrganizerRole, JudgeRole { uint256 internal activeOrganizersCount; // Controls active organizers count mapping(address => bool) internal activeOrganizers; // Controls active organizers state - constructor(address initialOrganizer) internal OrganizerRole(initialOrganizer) JudgeRole() {} + constructor(address initialOrganizer) OrganizerRole(initialOrganizer) JudgeRole() {} - function addJudge(address account) public onlyOrganizer { + function addJudge(address account) public override onlyOrganizer { _addJudge(account); } @@ -30,27 +32,27 @@ contract ContestRoleManager is OrganizerRole, JudgeRole { _removeJudge(account); } - function _addJudge(address account) internal { + function _addJudge(address account) virtual internal override { super._addJudge(account); judges.push(account); activeJudges[account] = true; activeJudgesCount = activeJudgesCount.add(1); } - function _removeJudge(address account) internal { + function _removeJudge(address account) virtual internal override { super._removeJudge(account); activeJudges[account] = false; activeJudgesCount = activeJudgesCount.sub(1); } - function _addOrganizer(address account) internal { + function _addOrganizer(address account) internal override { super._addOrganizer(account); organizers.push(account); activeOrganizers[account] = true; activeOrganizersCount = activeOrganizersCount.add(1); } - function _removeOrganizer(address account) internal { + function _removeOrganizer(address account) internal override { super._removeOrganizer(account); activeOrganizers[account] = false; activeOrganizersCount = activeOrganizersCount.sub(1); diff --git a/contracts/roles/JudgeRole.sol b/contracts/roles/JudgeRole.sol index ec17fe2..3a600ce 100644 --- a/contracts/roles/JudgeRole.sol +++ b/contracts/roles/JudgeRole.sol @@ -1,31 +1,10 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; -import "openzeppelin-solidity/contracts/access/Roles.sol"; +import "./Roles.sol"; /** @notice Implements a access control for a Judge role, @@ -33,7 +12,7 @@ import "openzeppelin-solidity/contracts/access/Roles.sol"; @dev not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info. */ -contract JudgeRole { +abstract contract JudgeRole { using Roles for Roles.Role; event JudgeAdded(address indexed account); @@ -41,10 +20,6 @@ contract JudgeRole { Roles.Role private _judges; - constructor() internal { - // Needs to be inherited. - } - modifier onlyJudge() { require(isJudge(msg.sender), "JudgeRole: caller does not have Judge Role."); _; @@ -56,18 +31,18 @@ contract JudgeRole { /// @notice /// @dev Needs to be implemented by a inherited contract. - function addJudge(address account) public; + function addJudge(address account) virtual public; function renounceJudge() public { _removeJudge(msg.sender); } - function _addJudge(address account) internal { + function _addJudge(address account) internal virtual { _judges.add(account); emit JudgeAdded(account); } - function _removeJudge(address account) internal { + function _removeJudge(address account) internal virtual { _judges.remove(account); emit JudgeRemoved(account); } diff --git a/contracts/roles/OrganizerRole.sol b/contracts/roles/OrganizerRole.sol index 196aff1..cd4064b 100644 --- a/contracts/roles/OrganizerRole.sol +++ b/contracts/roles/OrganizerRole.sol @@ -1,31 +1,10 @@ -// The MIT License(MIT) - -// Copyright(c) 2016 - 2019 zOS Global Limited - -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files(the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and / or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: - -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - // Based on OpenZeppelin's https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/roles/MinterRole.sol -pragma solidity ^0.5.0; +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; -import "openzeppelin-solidity/contracts/access/Roles.sol"; +import "./Roles.sol"; /** @notice Implements a access control for a Organizer role, @@ -33,7 +12,7 @@ import "openzeppelin-solidity/contracts/access/Roles.sol"; @dev not detailed documentation, since its based on OpenZeppelin. Take a look at the repo for further info. */ -contract OrganizerRole { +abstract contract OrganizerRole { using Roles for Roles.Role; event OrganizerAdded(address indexed account); @@ -41,7 +20,7 @@ contract OrganizerRole { Roles.Role private _organizers; - constructor(address initialOrganizer) internal { + constructor(address initialOrganizer) { require(initialOrganizer != address(0), "Invalid zero address"); _addOrganizer(initialOrganizer); } @@ -63,12 +42,12 @@ contract OrganizerRole { _removeOrganizer(msg.sender); } - function _addOrganizer(address account) internal { + function _addOrganizer(address account) internal virtual { _organizers.add(account); emit OrganizerAdded(account); } - function _removeOrganizer(address account) internal { + function _removeOrganizer(address account) internal virtual { _organizers.remove(account); emit OrganizerRemoved(account); } diff --git a/contracts/roles/Roles.sol b/contracts/roles/Roles.sol new file mode 100644 index 0000000..781c381 --- /dev/null +++ b/contracts/roles/Roles.sol @@ -0,0 +1,40 @@ +// Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v2.5.0/contracts/access/Roles.sol + +// SPDX-License-Identifier: UNLICENSED + +pragma solidity >=0.7.0 <0.8.0; + +/** + * @title Roles + * @dev Library for managing addresses assigned to a Role. + */ +library Roles { + struct Role { + mapping(address => bool) bearer; + } + + /** + * @dev Give an account access to this role. + */ + function add(Role storage role, address account) internal { + require(!has(role, account), "Roles: account already has role"); + role.bearer[account] = true; + } + + /** + * @dev Remove an account's access to this role. + */ + function remove(Role storage role, address account) internal { + require(has(role, account), "Roles: account does not have role"); + role.bearer[account] = false; + } + + /** + * @dev Check if an account has this role. + * @return bool + */ + function has(Role storage role, address account) internal view returns (bool) { + require(account != address(0), "Roles: account is the zero address"); + return role.bearer[account]; + } +} diff --git a/contracts/storage/EternalStorage.sol b/contracts/storage/EternalStorage.sol deleted file mode 100644 index d585a3b..0000000 --- a/contracts/storage/EternalStorage.sol +++ /dev/null @@ -1,262 +0,0 @@ -// MIT License - -// Copyright (c) 2018 Polymath - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -// Source: https://github.com/PolymathNetwork/polymath-core/blob/master/contracts/storage/EternalStorage.sol - -pragma solidity ^0.5.0; - -/** - * @notice Stores and retrieves state data. It allows other contracts to implement better - * upgradability by separating the contract's logic from its state. If a bug is found, the - * EternalStorage owner can update its logic without the need to migrate its data, which might - * be really expensive. - * @dev This contract was copied from PolymathNetwork github repo, and updated to Solidity v. ^0.5.0. - */ -contract EternalStorage { - /// @notice Internal mappings used to store all kinds on data into the contract - mapping(bytes32 => uint256) internal uintStorage; - mapping(bytes32 => string) internal stringStorage; - mapping(bytes32 => address) internal addressStorage; - mapping(bytes32 => bytes) internal bytesStorage; - mapping(bytes32 => bool) internal boolStorage; - mapping(bytes32 => int256) internal intStorage; - mapping(bytes32 => bytes32) internal bytes32Storage; - - /// @notice Internal mappings used to store arrays of different data types - mapping(bytes32 => bytes32[]) internal bytes32ArrayStorage; - mapping(bytes32 => uint256[]) internal uintArrayStorage; - mapping(bytes32 => address[]) internal addressArrayStorage; - mapping(bytes32 => string[]) internal stringArrayStorage; - - ////////////////// - //// set functions - ////////////////// - /// @notice Set the key values using the Overloaded `set` functions - /// Ex- string version = "0.0.1"; replace to - /// set(keccak256(abi.encodePacked("version"), "0.0.1"); - /// same for the other variables as well some more example listed below - /// ex1 - address securityTokenAddress = 0x123; replace to - /// set(keccak256(abi.encodePacked("securityTokenAddress"), 0x123); - /// ex2 - bytes32 tokenDetails = "I am ST20"; replace to - /// set(keccak256(abi.encodePacked("tokenDetails"), "I am ST20"); - /// ex3 - mapping(string => address) ownedToken; - /// set(keccak256(abi.encodePacked("ownedToken", "Chris")), 0x123); - /// ex4 - mapping(string => uint) tokenIndex; - /// tokenIndex["TOKEN"] = 1; replace to set(keccak256(abi.encodePacked("tokenIndex", "TOKEN"), 1); - /// ex5 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as - /// {uint256 date, string name, address owner} etc. - /// registeredSymbols["TOKEN"].name = "MyFristToken"; replace to set(keccak256(abi.encodePacked("registeredSymbols_name", "TOKEN"), "MyFirstToken"); - /// More generalized- set(keccak256(abi.encodePacked("registeredSymbols_", "keyname"), "value"); - - function set(bytes32 _key, uint256 _value) internal { - uintStorage[_key] = _value; - } - - function set(bytes32 _key, address _value) internal { - addressStorage[_key] = _value; - } - - function set(bytes32 _key, bool _value) internal { - boolStorage[_key] = _value; - } - - function set(bytes32 _key, bytes32 _value) internal { - bytes32Storage[_key] = _value; - } - - function set(bytes32 _key, string memory _value) internal { - stringStorage[_key] = _value; - } - - //////////////////////////// - // deleteArray functions - //////////////////////////// - /// @notice Function used to delete the array element. - /// Ex1- mapping(address => bytes32[]) tokensOwnedByOwner; - /// For deleting the item from array developers needs to create a funtion for that similarly - /// in this case we have the helper function deleteArrayBytes32() which will do it for us - /// deleteArrayBytes32(keccak256(abi.encodePacked("tokensOwnedByOwner", 0x1), 3); -- it will delete the index 3 - - //Deletes from mapping (bytes32 => array[]) at index _index - function deleteArrayAddress(bytes32 _key, uint256 _index) internal { - address[] storage array = addressArrayStorage[_key]; - require(_index < array.length, "Index should less than length of the array"); - array[_index] = array[array.length - 1]; - array.length = array.length - 1; - } - - //Deletes from mapping (bytes32 => bytes32[]) at index _index - function deleteArrayBytes32(bytes32 _key, uint256 _index) internal { - bytes32[] storage array = bytes32ArrayStorage[_key]; - require(_index < array.length, "Index should less than length of the array"); - array[_index] = array[array.length - 1]; - array.length = array.length - 1; - } - - //Deletes from mapping (bytes32 => uint[]) at index _index - function deleteArrayUint(bytes32 _key, uint256 _index) internal { - uint256[] storage array = uintArrayStorage[_key]; - require(_index < array.length, "Index should less than length of the array"); - array[_index] = array[array.length - 1]; - array.length = array.length - 1; - } - - //Deletes from mapping (bytes32 => string[]) at index _index - function deleteArrayString(bytes32 _key, uint256 _index) internal { - string[] storage array = stringArrayStorage[_key]; - require(_index < array.length, "Index should less than length of the array"); - array[_index] = array[array.length - 1]; - array.length = array.length - 1; - } - - //////////////////////////// - //// pushArray functions - /////////////////////////// - /// @notice Below are the helper functions to facilitate storing arrays of different data types. - /// Ex1- mapping(address => bytes32[]) tokensOwnedByTicker; - /// tokensOwnedByTicker[owner] = tokensOwnedByTicker[owner].push("xyz"); replace with - /// pushArray(keccak256(abi.encodePacked("tokensOwnedByTicker", owner), "xyz"); - - /// @notice use to store the values for the array - /// @param _key bytes32 type - /// @param _value [uint256, string, bytes32, address] any of the data type in array - function pushArray(bytes32 _key, address _value) internal { - addressArrayStorage[_key].push(_value); - } - - function pushArray(bytes32 _key, bytes32 _value) internal { - bytes32ArrayStorage[_key].push(_value); - } - - function pushArray(bytes32 _key, string memory _value) internal { - stringArrayStorage[_key].push(_value); - } - - function pushArray(bytes32 _key, uint256 _value) internal { - uintArrayStorage[_key].push(_value); - } - - ///////////////////////// - //// Set Array functions - //////////////////////// - /// @notice used to intialize the array - /// Ex1- mapping (address => address[]) public reputation; - /// reputation[0x1] = new address[](0); It can be replaced as - /// setArray(hash('reputation', 0x1), new address[](0)); - - function setArray(bytes32 _key, address[] memory _value) internal { - addressArrayStorage[_key] = _value; - } - - function setArray(bytes32 _key, uint256[] memory _value) internal { - uintArrayStorage[_key] = _value; - } - - function setArray(bytes32 _key, bytes32[] memory _value) internal { - bytes32ArrayStorage[_key] = _value; - } - - function setArray(bytes32 _key, string[] memory _value) internal { - stringArrayStorage[_key] = _value; - } - - ///////////////////////// - /// getArray functions - ///////////////////////// - /// @notice Get functions to get the array of the required data type - /// Ex1- mapping(address => bytes32[]) tokensOwnedByOwner; - /// getArrayBytes32(keccak256(abi.encodePacked("tokensOwnedByOwner", 0x1)); It return the bytes32 array - /// Ex2- uint256 _len = tokensOwnedByOwner[0x1].length; replace with - /// getArrayBytes32(keccak256(abi.encodePacked("tokensOwnedByOwner", 0x1)).length; - - function getArrayAddress(bytes32 _key) public view returns (address[] memory) { - return addressArrayStorage[_key]; - } - - function getArrayBytes32(bytes32 _key) public view returns (bytes32[] memory) { - return bytes32ArrayStorage[_key]; - } - - function getArrayUint(bytes32 _key) public view returns (uint256[] memory) { - return uintArrayStorage[_key]; - } - - /////////////////////////////////// - /// setArrayIndexValue() functions - /////////////////////////////////// - /// @notice set the value of particular index of the address array - /// Ex1- mapping(bytes32 => address[]) moduleList; - /// general way is -- moduleList[moduleType][index] = temp; - /// It can be re-write as -- setArrayIndexValue(keccak256(abi.encodePacked('moduleList', moduleType)), index, temp); - - function setArrayIndexValue(bytes32 _key, uint256 _index, address _value) internal { - addressArrayStorage[_key][_index] = _value; - } - - function setArrayIndexValue(bytes32 _key, uint256 _index, uint256 _value) internal { - uintArrayStorage[_key][_index] = _value; - } - - function setArrayIndexValue(bytes32 _key, uint256 _index, bytes32 _value) internal { - bytes32ArrayStorage[_key][_index] = _value; - } - - function setArrayIndexValue(bytes32 _key, uint256 _index, string memory _value) internal { - stringArrayStorage[_key][_index] = _value; - } - - /// Public getters functions - //////////////////// - /// @notice Get function use to get the value of the singleton state variables - /// Ex1- string public version = "0.0.1"; - /// string _version = getString(keccak256(abi.encodePacked("version")); - /// Ex2 - assert(temp1 == temp2); replace to - /// assert(getUint(keccak256(abi.encodePacked(temp1)) == getUint(keccak256(abi.encodePacked(temp2)); - /// Ex3 - mapping(string => SymbolDetails) registeredSymbols; where SymbolDetails is the structure having different type of values as - /// {uint256 date, string name, address owner} etc. - /// string _name = getString(keccak256(abi.encodePacked("registeredSymbols_name", "TOKEN")); - - function getUintValue(bytes32 _variable) public view returns (uint256) { - return uintStorage[_variable]; - } - - function getBoolValue(bytes32 _variable) public view returns (bool) { - return boolStorage[_variable]; - } - - function getStringValue(bytes32 _variable) public view returns (string memory) { - return stringStorage[_variable]; - } - - function getAddressValue(bytes32 _variable) public view returns (address) { - return addressStorage[_variable]; - } - - function getBytes32Value(bytes32 _variable) public view returns (bytes32) { - return bytes32Storage[_variable]; - } - - function getBytesValue(bytes32 _variable) public view returns (bytes memory) { - return bytesStorage[_variable]; - } - -} diff --git a/package-lock.json b/package-lock.json index 3533aea..e657ea1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -880,6 +880,220 @@ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.4.tgz", "integrity": "sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==" }, + "@ethersproject/abi": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", + "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", + "requires": { + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/hash": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.8.tgz", + "integrity": "sha512-fqJXkewcGdi8LogKMgRyzc/Ls2js07yor7+g9KfPs09uPOcQLg7cc34JN+lk34HH9gg2HU0DIA5797ZR8znkfw==", + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/networks": "^5.0.7", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/transactions": "^5.0.9", + "@ethersproject/web": "^5.0.12" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.11.tgz", + "integrity": "sha512-RKOgPSEYafknA62SrD3OCK42AllHE4YBfKYXyQeM+sBP7Nq3X5FpzeoY4uzC43P4wIhmNoTHCKQuwnX7fBqb6Q==", + "requires": { + "@ethersproject/abstract-provider": "^5.0.8", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7" + } + }, + "@ethersproject/address": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.9.tgz", + "integrity": "sha512-gKkmbZDMyGbVjr8nA5P0md1GgESqSGH7ILIrDidPdNXBl4adqbuA3OAuZx/O2oGpL6PtJ9BDa0kHheZ1ToHU3w==", + "requires": { + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/rlp": "^5.0.7" + } + }, + "@ethersproject/base64": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.7.tgz", + "integrity": "sha512-S5oh5DVfCo06xwJXT8fQC68mvJfgScTl2AXvbYMsHNfIBTDb084Wx4iA9MNlEReOv6HulkS+gyrUM/j3514rSw==", + "requires": { + "@ethersproject/bytes": "^5.0.9" + } + }, + "@ethersproject/bignumber": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.13.tgz", + "integrity": "sha512-b89bX5li6aK492yuPP5mPgRVgIxxBP7ksaBtKX5QQBsrZTpNOjf/MR4CjcUrAw8g+RQuD6kap9lPjFgY4U1/5A==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "bn.js": "^4.4.0" + } + }, + "@ethersproject/bytes": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.9.tgz", + "integrity": "sha512-k+17ZViDtAugC0s7HM6rdsTWEdIYII4RPCDkPEuxKc6i40Bs+m6tjRAtCECX06wKZnrEoR9pjOJRXHJ/VLoOcA==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/constants": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.8.tgz", + "integrity": "sha512-sCc73pFBsl59eDfoQR5OCEZCRv5b0iywadunti6MQIr5lt3XpwxK1Iuzd8XSFO02N9jUifvuZRrt0cY0+NBgTg==", + "requires": { + "@ethersproject/bignumber": "^5.0.13" + } + }, + "@ethersproject/hash": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.10.tgz", + "integrity": "sha512-Tf0bvs6YFhw28LuHnhlDWyr0xfcDxSXdwM4TcskeBbmXVSKLv3bJQEEEBFUcRX0fJuslR3gCVySEaSh7vuMx5w==", + "requires": { + "@ethersproject/abstract-signer": "^5.0.10", + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, + "@ethersproject/keccak256": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.7.tgz", + "integrity": "sha512-zpUBmofWvx9PGfc7IICobgFQSgNmTOGTGLUxSYqZzY/T+b4y/2o5eqf/GGmD7qnTGzKQ42YlLNo+LeDP2qe55g==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "js-sha3": "0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "@ethersproject/logger": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.8.tgz", + "integrity": "sha512-SkJCTaVTnaZ3/ieLF5pVftxGEFX56pTH+f2Slrpv7cU0TNpUZNib84QQdukd++sWUp/S7j5t5NW+WegbXd4U/A==" + }, + "@ethersproject/networks": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.7.tgz", + "integrity": "sha512-dI14QATndIcUgcCBL1c5vUr/YsI5cCHLN81rF7PU+yS7Xgp2/Rzbr9+YqpC6NBXHFUASjh6GpKqsVMpufAL0BQ==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/properties": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.7.tgz", + "integrity": "sha512-812H1Rus2vjw0zbasfDI1GLNPDsoyX1pYqiCgaR1BuyKxUTbwcH1B+214l6VGe1v+F6iEVb7WjIwMjKhb4EUsg==", + "requires": { + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/rlp": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.7.tgz", + "integrity": "sha512-ulUTVEuV7PT4jJTPpfhRHK57tkLEDEY9XSYJtrSNHOqdwMvH0z7BM2AKIMq4LVDlnu4YZASdKrkFGEIO712V9w==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/signing-key": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.8.tgz", + "integrity": "sha512-YKxQM45eDa6WAD+s3QZPdm1uW1MutzVuyoepdRRVmMJ8qkk7iOiIhUkZwqKLNxKzEJijt/82ycuOREc9WBNAKg==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "elliptic": "6.5.3" + }, + "dependencies": { + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + } + } + }, + "@ethersproject/strings": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.8.tgz", + "integrity": "sha512-5IsdXf8tMY8QuHl8vTLnk9ehXDDm6x9FB9S9Og5IA1GYhLe5ZewydXSjlJlsqU2t9HRbfv97OJZV/pX8DVA/Hw==", + "requires": { + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/logger": "^5.0.8" + } + }, + "@ethersproject/transactions": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.9.tgz", + "integrity": "sha512-0Fu1yhdFBkrbMjenEr+39tmDxuHmaw0pe9Jb18XuKoItj7Z3p7+UzdHLr2S/okvHDHYPbZE5gtANDdQ3ZL1nBA==", + "requires": { + "@ethersproject/address": "^5.0.9", + "@ethersproject/bignumber": "^5.0.13", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/constants": "^5.0.8", + "@ethersproject/keccak256": "^5.0.7", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/rlp": "^5.0.7", + "@ethersproject/signing-key": "^5.0.8" + } + }, + "@ethersproject/web": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.12.tgz", + "integrity": "sha512-gVxS5iW0bgidZ76kr7LsTxj4uzN5XpCLzvZrLp8TP+4YgxHfCeetFyQkRPgBEAJdNrexdSBayvyJvzGvOq0O8g==", + "requires": { + "@ethersproject/base64": "^5.0.7", + "@ethersproject/bytes": "^5.0.9", + "@ethersproject/logger": "^5.0.8", + "@ethersproject/properties": "^5.0.7", + "@ethersproject/strings": "^5.0.8" + } + }, "@nodelib/fs.scandir": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz", @@ -906,6 +1120,79 @@ "fastq": "^1.6.0" } }, + "@openzeppelin/contract-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@openzeppelin/contract-loader/-/contract-loader-0.6.2.tgz", + "integrity": "sha512-/P8v8ZFVwK+Z7rHQH2N3hqzEmTzLFjhMtvNK4FeIak6DEeONZ92vdFaFb10CCCQtp390Rp/Y57Rtfrm50bUdMQ==", + "requires": { + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + } + } + }, + "@openzeppelin/contracts": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.3.0.tgz", + "integrity": "sha512-AemZEsQYtUp1WRkcmZm1div5ORfTpLquLaziCIrSagjxyKdmObxuaY1yjQ5SHFMctR8rLwp706NXTbiIRJg7pw==" + }, + "@openzeppelin/test-helpers": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@openzeppelin/test-helpers/-/test-helpers-0.5.10.tgz", + "integrity": "sha512-agXr5Rn/q0MCDaU0ioYMGQVjY32Ln3Ae3cyQKtESuKdDoEZ7g3Y7x4eUbT779OE9nQ+xQCytmVqjKvZvajURug==", + "requires": { + "@openzeppelin/contract-loader": "^0.6.2", + "@truffle/contract": "^4.0.35", + "ansi-colors": "^3.2.3", + "chai": "^4.2.0", + "chai-bn": "^0.2.1", + "ethjs-abi": "^0.2.1", + "lodash.flatten": "^4.4.0", + "semver": "^5.6.0", + "web3": "^1.2.5", + "web3-utils": "^1.2.5" + } + }, "@samverschueren/stream-to-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", @@ -1029,19 +1316,1210 @@ "rollup-pluginutils": "^2.8.1" } }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@truffle/blockchain-utils": { + "version": "0.0.25", + "resolved": "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz", + "integrity": "sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw==", + "requires": { + "source-map-support": "^0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "@truffle/codec": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.9.4.tgz", + "integrity": "sha512-EAx/6Dg8Dj/O6/zqXpp4Q9OtxKmPKItmHWD91FM7bOXvX71wx66XZqIxD7ORjLEzQqYfJj81ttSnOZgpGxj3RA==", + "requires": { + "big.js": "^5.2.2", + "bn.js": "^4.11.8", + "cbor": "^5.1.0", + "debug": "^4.1.0", + "lodash.clonedeep": "^4.5.0", + "lodash.escaperegexp": "^4.1.2", + "lodash.partition": "^4.6.0", + "lodash.sum": "^4.0.2", + "semver": "^6.3.0", + "source-map-support": "^0.5.19", + "utf8": "^3.0.0", + "web3-utils": "1.2.9" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "web3-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", + "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "@truffle/contract": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.5.tgz", + "integrity": "sha512-08gLSId+spnXqdM/25pOiurNcSBeCBa6KrplCgojy1RvqlG8JbEa9jXHWt1DCACZTtSnCsC2ywSNxAKRb4HqIA==", + "requires": { + "@truffle/blockchain-utils": "^0.0.25", + "@truffle/contract-schema": "^3.3.3", + "@truffle/debug-utils": "^5.0.8", + "@truffle/error": "^0.0.11", + "@truffle/interface-adapter": "^0.4.18", + "bignumber.js": "^7.2.1", + "ethereum-ens": "^0.8.0", + "ethers": "^4.0.0-beta.1", + "source-map-support": "^0.5.19", + "web3": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.0.0-beta.153", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", + "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", + "requires": { + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "@types/node": { + "version": "10.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz", + "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==" + }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "web3": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.9.tgz", + "integrity": "sha512-Mo5aBRm0JrcNpN/g4VOrDzudymfOnHRC3s2VarhYxRA8aWgF5rnhQ0ziySaugpic1gksbXPe105pUWyRqw8HUA==", + "requires": { + "web3-bzz": "1.2.9", + "web3-core": "1.2.9", + "web3-eth": "1.2.9", + "web3-eth-personal": "1.2.9", + "web3-net": "1.2.9", + "web3-shh": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-bzz": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.9.tgz", + "integrity": "sha512-ogVQr9jHodu9HobARtvUSmWG22cv2EUQzlPeejGWZ7j5h20HX40EDuWyomGY5VclIj5DdLY76Tmq88RTf/6nxA==", + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + } + }, + "web3-core": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.9.tgz", + "integrity": "sha512-fSYv21IP658Ty2wAuU9iqmW7V+75DOYMVZsDH/c14jcF/1VXnedOcxzxSj3vArsCvXZNe6XC5/wAuGZyQwR9RA==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-requestmanager": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + } + } + }, + "web3-core-helpers": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.9.tgz", + "integrity": "sha512-t0WAG3orLCE3lqi77ZoSRNFok3VQWZXTniZigDQjyOJYMAX7BU3F3js8HKbjVnAxlX3tiKoDxI0KBk9F3AxYuw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-core-method": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.9.tgz", + "integrity": "sha512-bjsIoqP3gs7A/gP8+QeLUCyOKJ8bopteCSNbCX36Pxk6TYfYWNuC6hP+2GzUuqdP3xaZNe+XEElQFUNpR3oyAg==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-core-promievent": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.9.tgz", + "integrity": "sha512-0eAUA2zjgXTleSrnc1wdoKQPPIHU6KHf4fAscu4W9kKrR+mqP1KsjYrxY9wUyjNnXxfQ+5M29ipvbiaK8OqdOw==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.9.tgz", + "integrity": "sha512-1PwKV2m46ALUnIN5VPPgjOj8yMLJhhqZYvYJE34hTN5SErOkwhzx5zScvo5MN7v7KyQGFnpVCZKKGCiEnDmtFA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "web3-providers-http": "1.2.9", + "web3-providers-ipc": "1.2.9", + "web3-providers-ws": "1.2.9" + } + }, + "web3-core-subscriptions": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.9.tgz", + "integrity": "sha512-Y48TvXPSPxEM33OmXjGVDMzTd0j8X0t2+sDw66haeBS8eYnrEzasWuBZZXDq0zNUsqyxItgBGDn+cszkgEnFqg==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9" + } + }, + "web3-eth": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.9.tgz", + "integrity": "sha512-sIKO4iE9FEBa/CYUd6GdPd7GXt/wISqxUd8PlIld6+hvMJj02lgO7Z7p5T9mZIJcIZJGvZX81ogx8oJ9yif+Ag==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-eth-accounts": "1.2.9", + "web3-eth-contract": "1.2.9", + "web3-eth-ens": "1.2.9", + "web3-eth-iban": "1.2.9", + "web3-eth-personal": "1.2.9", + "web3-net": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-abi": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.9.tgz", + "integrity": "sha512-3YwUYbh/DMfDbhMWEebAdjSd5bj3ZQieOjLzWFHU23CaLEqT34sUix1lba+hgUH/EN6A7bKAuKOhR3p0OvTn7Q==", + "requires": { + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.9" + } + }, + "web3-eth-accounts": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.9.tgz", + "integrity": "sha512-jkbDCZoA1qv53mFcRHCinoCsgg8WH+M0YUO1awxmqWXRmCRws1wW0TsuSQ14UThih5Dxolgl+e+aGWxG58LMwg==", + "requires": { + "crypto-browserify": "3.12.0", + "eth-lib": "^0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "web3-eth-contract": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.9.tgz", + "integrity": "sha512-PYMvJf7EG/HyssUZa+pXrc8IB06K/YFfWYyW4R7ed3sab+9wWUys1TlWxBCBuiBXOokSAyM6H6P6/cKEx8FT8Q==", + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-ens": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.9.tgz", + "integrity": "sha512-kG4+ZRgZ8I1WYyOBGI8QVRHfUSbbJjvJAGA1AF/NOW7JXQ+x7gBGeJw6taDWJhSshMoEKWcsgvsiuoG4870YxQ==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-eth-contract": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-iban": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.9.tgz", + "integrity": "sha512-RtdVvJE0pyg9dHLy0GzDiqgnLnssSzfz/JYguhC1wsj9+Gnq1M6Diy3NixACWUAp6ty/zafyOaZnNQ+JuH9TjQ==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.9" + } + }, + "web3-eth-personal": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.9.tgz", + "integrity": "sha512-cFiNrktxZ1C/rIdJFzQTvFn3/0zcsR3a+Jf8Y3KxeQDHszQtosjLWptP7bsUmDwEh4hzh0Cy3KpOxlYBWB8bJQ==", + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-net": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + } + } + }, + "web3-net": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.9.tgz", + "integrity": "sha512-d2mTn8jPlg+SI2hTj2b32Qan6DmtU9ap/IUlJTeQbZQSkTLf0u9suW8Vjwyr4poJYXTurdSshE7OZsPNn30/ZA==", + "requires": { + "web3-core": "1.2.9", + "web3-core-method": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-providers-http": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.9.tgz", + "integrity": "sha512-F956tCIj60Ttr0UvEHWFIhx+be3He8msoPzyA44/kfzzYoMAsCFRn5cf0zQG6al0znE75g6HlWVSN6s3yAh51A==", + "requires": { + "web3-core-helpers": "1.2.9", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.9.tgz", + "integrity": "sha512-NQ8QnBleoHA2qTJlqoWu7EJAD/FR5uimf7Ielzk4Z2z+m+6UAuJdJMSuQNj+Umhz9L/Ys6vpS1vHx9NizFl+aQ==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9" + } + }, + "web3-providers-ws": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.9.tgz", + "integrity": "sha512-6+UpvINeI//dglZoAKStUXqxDOXJy6Iitv2z3dbgInG4zb8tkYl/VBDL80UjUg3ZvzWG0g7EKY2nRPEpON2TFA==", + "requires": { + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "websocket": "^1.0.31" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-shh": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.9.tgz", + "integrity": "sha512-PWa8b/EaxaMinFaxy6cV0i0EOi2M7a/ST+9k9nhyhCjVa2vzXuNoBNo2IUOmeZ0WP2UQB8ByJ2+p4htlJaDOjA==", + "requires": { + "web3-core": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-net": "1.2.9" + } + }, + "web3-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", + "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + } + } + }, + "@truffle/contract-schema": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.3.3.tgz", + "integrity": "sha512-4bvcEoGycopJBPoCiqHP5Q72/1t/ixYS/pVHru+Rzvad641BgvoGrkd4YnyJ+E/MVb4ZLrndL7whmdGqV5B7SA==", + "requires": { + "ajv": "^6.10.0", + "crypto-js": "^3.1.9-1", + "debug": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@truffle/debug-utils": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-5.0.8.tgz", + "integrity": "sha512-2YzZzhhbZnUr+zQSiqkjF9cwwUPBFyMuH2/iGvjR+9l3+gpOm9+psN658dCziLV0qwiME4Tor4pIW7FnOEDegQ==", + "requires": { + "@truffle/codec": "^0.9.4", + "@trufflesuite/chromafi": "^2.2.2", + "bn.js": "^5.1.3", + "chalk": "^2.4.2", + "debug": "^4.1.0", + "highlight.js": "^10.4.0", + "highlightjs-solidity": "^1.0.20" + }, + "dependencies": { + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@truffle/error": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.0.11.tgz", + "integrity": "sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw==" + }, + "@truffle/interface-adapter": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.4.18.tgz", + "integrity": "sha512-P9JVSYD/CX3V+NgTWu+Bf71sLh8pMwrCpbiYRB93pRw/1H3ZTvt5iDC2MVvVxCs8FkSiy4OZzQK/DJ8+hXAmYw==", + "requires": { + "bn.js": "^4.11.8", + "ethers": "^4.0.32", + "source-map-support": "^0.5.19", + "web3": "1.2.9" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.0.0-beta.153", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz", + "integrity": "sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg==", + "requires": { + "@ethersproject/address": ">=5.0.0-beta.128", + "@ethersproject/bignumber": ">=5.0.0-beta.130", + "@ethersproject/bytes": ">=5.0.0-beta.129", + "@ethersproject/constants": ">=5.0.0-beta.128", + "@ethersproject/hash": ">=5.0.0-beta.128", + "@ethersproject/keccak256": ">=5.0.0-beta.127", + "@ethersproject/logger": ">=5.0.0-beta.129", + "@ethersproject/properties": ">=5.0.0-beta.131", + "@ethersproject/strings": ">=5.0.0-beta.130" + } + }, + "@types/node": { + "version": "10.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz", + "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "web3": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.9.tgz", + "integrity": "sha512-Mo5aBRm0JrcNpN/g4VOrDzudymfOnHRC3s2VarhYxRA8aWgF5rnhQ0ziySaugpic1gksbXPe105pUWyRqw8HUA==", + "requires": { + "web3-bzz": "1.2.9", + "web3-core": "1.2.9", + "web3-eth": "1.2.9", + "web3-eth-personal": "1.2.9", + "web3-net": "1.2.9", + "web3-shh": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-bzz": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.9.tgz", + "integrity": "sha512-ogVQr9jHodu9HobARtvUSmWG22cv2EUQzlPeejGWZ7j5h20HX40EDuWyomGY5VclIj5DdLY76Tmq88RTf/6nxA==", + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "^0.1.40", + "underscore": "1.9.1" + } + }, + "web3-core": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.9.tgz", + "integrity": "sha512-fSYv21IP658Ty2wAuU9iqmW7V+75DOYMVZsDH/c14jcF/1VXnedOcxzxSj3vArsCvXZNe6XC5/wAuGZyQwR9RA==", + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-requestmanager": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + } + } + }, + "web3-core-helpers": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.9.tgz", + "integrity": "sha512-t0WAG3orLCE3lqi77ZoSRNFok3VQWZXTniZigDQjyOJYMAX7BU3F3js8HKbjVnAxlX3tiKoDxI0KBk9F3AxYuw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-core-method": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.9.tgz", + "integrity": "sha512-bjsIoqP3gs7A/gP8+QeLUCyOKJ8bopteCSNbCX36Pxk6TYfYWNuC6hP+2GzUuqdP3xaZNe+XEElQFUNpR3oyAg==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-core-promievent": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.9.tgz", + "integrity": "sha512-0eAUA2zjgXTleSrnc1wdoKQPPIHU6KHf4fAscu4W9kKrR+mqP1KsjYrxY9wUyjNnXxfQ+5M29ipvbiaK8OqdOw==", + "requires": { + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.9.tgz", + "integrity": "sha512-1PwKV2m46ALUnIN5VPPgjOj8yMLJhhqZYvYJE34hTN5SErOkwhzx5zScvo5MN7v7KyQGFnpVCZKKGCiEnDmtFA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "web3-providers-http": "1.2.9", + "web3-providers-ipc": "1.2.9", + "web3-providers-ws": "1.2.9" + } + }, + "web3-core-subscriptions": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.9.tgz", + "integrity": "sha512-Y48TvXPSPxEM33OmXjGVDMzTd0j8X0t2+sDw66haeBS8eYnrEzasWuBZZXDq0zNUsqyxItgBGDn+cszkgEnFqg==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9" + } + }, + "web3-eth": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.9.tgz", + "integrity": "sha512-sIKO4iE9FEBa/CYUd6GdPd7GXt/wISqxUd8PlIld6+hvMJj02lgO7Z7p5T9mZIJcIZJGvZX81ogx8oJ9yif+Ag==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-eth-accounts": "1.2.9", + "web3-eth-contract": "1.2.9", + "web3-eth-ens": "1.2.9", + "web3-eth-iban": "1.2.9", + "web3-eth-personal": "1.2.9", + "web3-net": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-abi": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.9.tgz", + "integrity": "sha512-3YwUYbh/DMfDbhMWEebAdjSd5bj3ZQieOjLzWFHU23CaLEqT34sUix1lba+hgUH/EN6A7bKAuKOhR3p0OvTn7Q==", + "requires": { + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.2.9" + } + }, + "web3-eth-accounts": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.9.tgz", + "integrity": "sha512-jkbDCZoA1qv53mFcRHCinoCsgg8WH+M0YUO1awxmqWXRmCRws1wW0TsuSQ14UThih5Dxolgl+e+aGWxG58LMwg==", + "requires": { + "crypto-browserify": "3.12.0", + "eth-lib": "^0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + }, + "web3-eth-contract": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.9.tgz", + "integrity": "sha512-PYMvJf7EG/HyssUZa+pXrc8IB06K/YFfWYyW4R7ed3sab+9wWUys1TlWxBCBuiBXOokSAyM6H6P6/cKEx8FT8Q==", + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-ens": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.9.tgz", + "integrity": "sha512-kG4+ZRgZ8I1WYyOBGI8QVRHfUSbbJjvJAGA1AF/NOW7JXQ+x7gBGeJw6taDWJhSshMoEKWcsgvsiuoG4870YxQ==", + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-promievent": "1.2.9", + "web3-eth-abi": "1.2.9", + "web3-eth-contract": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-eth-iban": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.9.tgz", + "integrity": "sha512-RtdVvJE0pyg9dHLy0GzDiqgnLnssSzfz/JYguhC1wsj9+Gnq1M6Diy3NixACWUAp6ty/zafyOaZnNQ+JuH9TjQ==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.9" + } + }, + "web3-eth-personal": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.9.tgz", + "integrity": "sha512-cFiNrktxZ1C/rIdJFzQTvFn3/0zcsR3a+Jf8Y3KxeQDHszQtosjLWptP7bsUmDwEh4hzh0Cy3KpOxlYBWB8bJQ==", + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.9", + "web3-core-helpers": "1.2.9", + "web3-core-method": "1.2.9", + "web3-net": "1.2.9", + "web3-utils": "1.2.9" + }, + "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + } + } + }, + "web3-net": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.9.tgz", + "integrity": "sha512-d2mTn8jPlg+SI2hTj2b32Qan6DmtU9ap/IUlJTeQbZQSkTLf0u9suW8Vjwyr4poJYXTurdSshE7OZsPNn30/ZA==", + "requires": { + "web3-core": "1.2.9", + "web3-core-method": "1.2.9", + "web3-utils": "1.2.9" + } + }, + "web3-providers-http": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.9.tgz", + "integrity": "sha512-F956tCIj60Ttr0UvEHWFIhx+be3He8msoPzyA44/kfzzYoMAsCFRn5cf0zQG6al0znE75g6HlWVSN6s3yAh51A==", + "requires": { + "web3-core-helpers": "1.2.9", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.9.tgz", + "integrity": "sha512-NQ8QnBleoHA2qTJlqoWu7EJAD/FR5uimf7Ielzk4Z2z+m+6UAuJdJMSuQNj+Umhz9L/Ys6vpS1vHx9NizFl+aQ==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9" + } + }, + "web3-providers-ws": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.9.tgz", + "integrity": "sha512-6+UpvINeI//dglZoAKStUXqxDOXJy6Iitv2z3dbgInG4zb8tkYl/VBDL80UjUg3ZvzWG0g7EKY2nRPEpON2TFA==", + "requires": { + "eventemitter3": "^4.0.0", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.9", + "websocket": "^1.0.31" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "web3-shh": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.9.tgz", + "integrity": "sha512-PWa8b/EaxaMinFaxy6cV0i0EOi2M7a/ST+9k9nhyhCjVa2vzXuNoBNo2IUOmeZ0WP2UQB8ByJ2+p4htlJaDOjA==", + "requires": { + "web3-core": "1.2.9", + "web3-core-method": "1.2.9", + "web3-core-subscriptions": "1.2.9", + "web3-net": "1.2.9" + } + }, + "web3-utils": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", + "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + } + } + } + } + }, + "@trufflesuite/chromafi": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@trufflesuite/chromafi/-/chromafi-2.2.2.tgz", + "integrity": "sha512-mItQwVBsb8qP/vaYHQ1kDt2vJLhjoEXJptT6y6fJGvFophMFhOI/NsTVUa0nJL1nyMeFiS6hSYuNVdpQZzB1gA==", + "requires": { + "ansi-mark": "^1.0.0", + "ansi-regex": "^3.0.0", + "array-uniq": "^1.0.3", + "camelcase": "^4.1.0", + "chalk": "^2.3.2", + "cheerio": "^1.0.0-rc.2", + "detect-indent": "^5.0.0", + "he": "^1.1.1", + "highlight.js": "^10.4.1", + "lodash.merge": "^4.6.2", + "min-indent": "^1.0.0", + "strip-ansi": "^4.0.0", + "strip-indent": "^2.0.0", + "super-split": "^1.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } } }, "@types/bn.js": { "version": "4.11.5", "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.5.tgz", "integrity": "sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng==", - "dev": true, "requires": { "@types/node": "*" } @@ -1078,8 +2556,7 @@ "@types/node": { "version": "12.6.8", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.8.tgz", - "integrity": "sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==", - "dev": true + "integrity": "sha512-aX+gFgA5GHcDi89KG5keey2zf0WfZk/HAQotEamsK2kbey+8yGKcson0hbK8E+v0NArlCJQCqMP161YhV6ZXLg==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -1087,11 +2564,27 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, "@types/q": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" }, + "@types/secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", + "requires": { + "@types/node": "*" + } + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -1425,8 +2918,7 @@ "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" }, "ansi-escapes": { "version": "3.2.0", @@ -1434,25 +2926,28 @@ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, - "ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "requires": { - "ansi-wrap": "0.1.0" - } - }, "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", "dev": true }, + "ansi-mark": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ansi-mark/-/ansi-mark-1.0.4.tgz", + "integrity": "sha1-HNS6jVfxXxCdaq9uycqXhsik7mw=", + "requires": { + "ansi-regex": "^3.0.0", + "array-uniq": "^1.0.3", + "chalk": "^2.3.2", + "strip-ansi": "^4.0.0", + "super-split": "^1.1.0" + } + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "3.2.1", @@ -1462,11 +2957,6 @@ "color-convert": "^1.9.0" } }, - "ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=" - }, "antlr4": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/antlr4/-/antlr4-4.7.1.tgz", @@ -1488,6 +2978,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" @@ -1497,31 +2988,19 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } } } }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "requires": { - "buffer-equal": "^1.0.0" - } - }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1556,38 +3035,24 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "requires": { - "make-iterator": "^1.0.0" - } + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "requires": { - "make-iterator": "^1.0.0" - } + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=" + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" }, "array-flatten": { "version": "1.1.1", @@ -1604,59 +3069,6 @@ "es-abstract": "^1.7.0" } }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==" - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -1666,13 +3078,13 @@ "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true }, "asap": { "version": "2.0.6", @@ -1739,13 +3151,13 @@ "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true }, "ast-types": { "version": "0.9.6", @@ -1774,21 +3186,11 @@ "lodash": "^4.17.14" } }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true }, "async-eventemitter": { "version": "0.2.4", @@ -1804,14 +3206,6 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "requires": { - "async-done": "^1.2.2" - } - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1820,7 +3214,16 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "requires": { + "array-filter": "^1.0.0" + } }, "aws-sign2": { "version": "0.7.0", @@ -1907,31 +3310,17 @@ } } }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -1946,6 +3335,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -1954,6 +3344,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1962,6 +3353,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -1970,6 +3362,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -1978,6 +3371,14 @@ } } }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", @@ -2000,18 +3401,18 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" }, "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true }, "bindings": { "version": "1.5.0", @@ -2039,6 +3440,11 @@ "safe-buffer": "^5.1.1" } }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, "bluebird": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", @@ -2147,6 +3553,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2156,6 +3563,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -2173,6 +3581,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -2296,6 +3705,24 @@ "node-releases": "^1.1.25" } }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", @@ -2324,11 +3751,6 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=" - }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -2355,6 +3777,14 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -2399,6 +3829,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -2440,6 +3871,15 @@ } } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -2525,11 +3965,19 @@ } } }, + "cbor": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz", + "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==", + "requires": { + "bignumber.js": "^9.0.1", + "nofilter": "^1.0.4" + } + }, "chai": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", @@ -2540,10 +3988,9 @@ } }, "chai-bn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.1.1.tgz", - "integrity": "sha512-e1npVXt3cQfZ6oQET9oP38vNj/4HeJ4ojeUpuC8YzhVbTJpIDqANVt7TKi7Dq9yKlHySk2FqbmiMih35iT4DYg==", - "dev": true + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.1.tgz", + "integrity": "sha512-01jt2gSXAw7UYFPT5K8d7HYjdXj2vyeIuE+0T/34FWzlNcVbs1JkPxRu7rYMfQnJhrHT8Nr6qjSf5ZwwLU2EYg==" }, "chalk": { "version": "2.4.2", @@ -2569,8 +4016,7 @@ "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, "checkpoint-store": { "version": "1.1.0", @@ -2581,10 +4027,153 @@ "functional-red-black-tree": "^1.0.1" } }, + "cheerio": { + "version": "1.0.0-rc.5", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.5.tgz", + "integrity": "sha512-yoqps/VCaZgN4pfXtenwHROTp8NG6/Hlt4Jpz2FEP0ZJQ+ZUkVDd0hAPDNKhj3nakpfPt/CNs57yEtxD1bXQiw==", + "requires": { + "cheerio-select-tmp": "^0.1.0", + "dom-serializer": "~1.2.0", + "domhandler": "^4.0.0", + "entities": "~2.1.0", + "htmlparser2": "^6.0.0", + "parse5": "^6.0.0", + "parse5-htmlparser2-tree-adapter": "^6.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", + "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" + }, + "domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "requires": { + "domelementtype": "^2.1.0" + } + }, + "domutils": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz", + "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0" + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, + "htmlparser2": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.0.0.tgz", + "integrity": "sha512-numTQtDZMoh78zJpaNdJ9MXb2cv5G3jwUoe3dMQODubZvLoGvTE/Ofp6sHvH8OGKcN/8A47pGLi/k58xHP/Tfw==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.4.4", + "entities": "^2.0.0" + } + } + } + }, + "cheerio-select-tmp": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/cheerio-select-tmp/-/cheerio-select-tmp-0.1.1.tgz", + "integrity": "sha512-YYs5JvbpU19VYJyj+F7oYrIE2BOll1/hRU7rEy/5+v9BzkSo3bK81iAeeQEMI92vRIxz677m72UmJUiVwwgjfQ==", + "requires": { + "css-select": "^3.1.2", + "css-what": "^4.0.0", + "domelementtype": "^2.1.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.4" + }, + "dependencies": { + "css-select": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", + "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^4.0.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.3", + "nth-check": "^2.0.0" + } + }, + "css-what": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", + "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==" + }, + "dom-serializer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz", + "integrity": "sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" + }, + "domhandler": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz", + "integrity": "sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==", + "requires": { + "domelementtype": "^2.1.0" + } + }, + "domutils": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz", + "integrity": "sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0" + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "requires": { + "boolbase": "^1.0.0" + } + } + } + }, "chokidar": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", @@ -2620,6 +4209,43 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, + "cids": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", + "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.6.0", + "multicodec": "^1.0.0", + "multihashes": "~0.4.15" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "multicodec": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } + } + } + }, "cint": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/cint/-/cint-8.2.1.tgz", @@ -2635,10 +4261,16 @@ "safe-buffer": "^5.0.1" } }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -2650,6 +4282,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -2828,11 +4461,6 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" - }, "clone-deep": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", @@ -2871,21 +4499,6 @@ "mimic-response": "^1.0.0" } }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -2899,22 +4512,14 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -2933,11 +4538,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", @@ -2973,7 +4573,8 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "compressible": { "version": "2.0.17", @@ -3010,12 +4611,14 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -3095,6 +4698,16 @@ "safe-buffer": "5.1.2" } }, + "content-hash": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", + "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", + "requires": { + "cids": "^0.7.1", + "multicodec": "^0.5.5", + "multihashes": "^0.4.15" + } + }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -3140,16 +4753,8 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", - "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - } + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true }, "core-js": { "version": "2.6.9", @@ -3303,8 +4908,7 @@ "crypto-js": { "version": "3.1.9-1", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", - "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=", - "dev": true + "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=" }, "crypto-random-string": { "version": "1.0.0", @@ -3440,7 +5044,8 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "decode-uri-component": { "version": "0.2.0", @@ -3573,7 +5178,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, "requires": { "type-detect": "^4.0.0" } @@ -3596,21 +5200,6 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "requires": { - "kind-of": "^5.0.2" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -3621,11 +5210,6 @@ "ip-regex": "^2.1.0" } }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=" - }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -3661,6 +5245,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -3670,6 +5255,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3678,6 +5264,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3686,6 +5273,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3734,7 +5322,13 @@ "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=" + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=" }, "detect-installed": { "version": "2.0.4", @@ -3924,6 +5518,7 @@ "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", @@ -3931,15 +5526,6 @@ "stream-shift": "^1.0.0" } }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4171,17 +5757,6 @@ "through": "~2.3.6" } }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -4682,12 +6257,116 @@ "resolved": "https://registry.npmjs.org/ethereum-blockies/-/ethereum-blockies-0.1.1.tgz", "integrity": "sha1-h5/pWd7vSSp6krQ9w0ro3C7lkfw=" }, + "ethereum-bloom-filters": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz", + "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", + "requires": { + "js-sha3": "^0.8.0" + }, + "dependencies": { + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + } + } + }, "ethereum-common": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==", "dev": true }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + } + } + }, + "ethereum-ens": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/ethereum-ens/-/ethereum-ens-0.8.0.tgz", + "integrity": "sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg==", + "requires": { + "bluebird": "^3.4.7", + "eth-ens-namehash": "^2.0.0", + "js-sha3": "^0.5.7", + "pako": "^1.0.4", + "underscore": "^1.8.3", + "web3": "^1.0.0-beta.34" + } + }, "ethereumjs-account": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz", @@ -5327,7 +7006,6 @@ "version": "4.0.33", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.33.tgz", "integrity": "sha512-lAHkSPzBe0Vj+JrhmkEHLtUEKEheVktIjGDyE9gbzF4zf1vibjYgB57LraDHu4/ItqWVkztgsm8GWqcDMN+6vQ==", - "dev": true, "requires": { "@types/node": "^10.3.2", "aes-js": "3.0.0", @@ -5344,20 +7022,17 @@ "@types/node": { "version": "10.14.13", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", - "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==", - "dev": true + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", - "dev": true + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" } } }, @@ -5365,7 +7040,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz", "integrity": "sha1-4KepOn6BFjqUR3utVu3lJKtt5TM=", - "dev": true, "requires": { "bn.js": "4.11.6", "js-sha3": "0.5.5", @@ -5375,8 +7049,12 @@ "bn.js": { "version": "4.11.6", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "js-sha3": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", + "integrity": "sha1-uvDA6MVK1ZA0R9+Wreekobynmko=" } } }, @@ -5400,7 +7078,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dev": true, "requires": { "is-hex-prefixed": "1.0.0", "strip-hex-prefix": "1.0.0" @@ -5454,6 +7131,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -5468,6 +7146,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -5476,6 +7155,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5486,6 +7166,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } @@ -5536,6 +7217,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -5545,6 +7227,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -5566,6 +7249,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -5581,6 +7265,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -5589,6 +7274,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5597,6 +7283,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5605,6 +7292,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5613,6 +7301,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5645,17 +7334,6 @@ "checkpoint-store": "^1.1.0" } }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, "fast-async": { "version": "6.3.8", "resolved": "https://registry.npmjs.org/fast-async/-/fast-async-6.3.8.tgz", @@ -5862,6 +7540,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -5873,6 +7552,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5917,6 +7597,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, "requires": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", @@ -5924,23 +7605,6 @@ "resolve-dir": "^1.0.1" } }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==" - }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -5968,6 +7632,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" @@ -6012,13 +7677,10 @@ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "forever-agent": { "version": "0.6.1", @@ -6044,6 +7706,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -6086,15 +7749,6 @@ "minipass": "^2.2.1" } }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -6110,12 +7764,14 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, "optional": true, "requires": { "nan": "^2.12.1", @@ -6125,21 +7781,25 @@ "abbrev": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, "ansi-regex": { "version": "2.1.1", "bundled": true, + "dev": true, "optional": true }, "aproba": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true }, "are-we-there-yet": { "version": "1.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", @@ -6149,11 +7809,13 @@ "balanced-match": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "dev": true, "optional": true, "requires": { "balanced-match": "^1.0.0", @@ -6163,31 +7825,37 @@ "chownr": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true }, "code-point-at": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, + "dev": true, "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, + "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "debug": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ms": "^2.1.1" @@ -6196,21 +7864,25 @@ "deep-extend": { "version": "0.6.0", "bundled": true, + "dev": true, "optional": true }, "delegates": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "detect-libc": { "version": "1.0.3", "bundled": true, + "dev": true, "optional": true }, "fs-minipass": { "version": "1.2.5", "bundled": true, + "dev": true, "optional": true, "requires": { "minipass": "^2.2.1" @@ -6219,11 +7891,13 @@ "fs.realpath": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "gauge": { "version": "2.7.4", "bundled": true, + "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", @@ -6239,6 +7913,7 @@ "glob": { "version": "7.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "fs.realpath": "^1.0.0", @@ -6252,11 +7927,13 @@ "has-unicode": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "iconv-lite": { "version": "0.4.24", "bundled": true, + "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -6265,6 +7942,7 @@ "ignore-walk": { "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "minimatch": "^3.0.4" @@ -6273,6 +7951,7 @@ "inflight": { "version": "1.0.6", "bundled": true, + "dev": true, "optional": true, "requires": { "once": "^1.3.0", @@ -6282,16 +7961,19 @@ "inherits": { "version": "2.0.3", "bundled": true, + "dev": true, "optional": true }, "ini": { "version": "1.3.5", "bundled": true, + "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" @@ -6300,11 +7982,13 @@ "isarray": { "version": "1.0.0", "bundled": true, + "dev": true, "optional": true }, "minimatch": { "version": "3.0.4", "bundled": true, + "dev": true, "optional": true, "requires": { "brace-expansion": "^1.1.7" @@ -6313,11 +7997,13 @@ "minimist": { "version": "0.0.8", "bundled": true, + "dev": true, "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "^5.1.2", @@ -6327,6 +8013,7 @@ "minizlib": { "version": "1.2.1", "bundled": true, + "dev": true, "optional": true, "requires": { "minipass": "^2.2.1" @@ -6335,6 +8022,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "dev": true, "optional": true, "requires": { "minimist": "0.0.8" @@ -6343,11 +8031,13 @@ "ms": { "version": "2.1.1", "bundled": true, + "dev": true, "optional": true }, "needle": { "version": "2.3.0", "bundled": true, + "dev": true, "optional": true, "requires": { "debug": "^4.1.0", @@ -6358,6 +8048,7 @@ "node-pre-gyp": { "version": "0.12.0", "bundled": true, + "dev": true, "optional": true, "requires": { "detect-libc": "^1.0.2", @@ -6375,6 +8066,7 @@ "nopt": { "version": "4.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "abbrev": "1", @@ -6384,11 +8076,13 @@ "npm-bundled": { "version": "1.0.6", "bundled": true, + "dev": true, "optional": true }, "npm-packlist": { "version": "1.4.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ignore-walk": "^3.0.1", @@ -6398,6 +8092,7 @@ "npmlog": { "version": "4.1.2", "bundled": true, + "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -6409,16 +8104,19 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "object-assign": { "version": "4.1.1", "bundled": true, + "dev": true, "optional": true }, "once": { "version": "1.4.0", "bundled": true, + "dev": true, "optional": true, "requires": { "wrappy": "1" @@ -6427,16 +8125,19 @@ "os-homedir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "osenv": { "version": "0.1.5", "bundled": true, + "dev": true, "optional": true, "requires": { "os-homedir": "^1.0.0", @@ -6446,16 +8147,19 @@ "path-is-absolute": { "version": "1.0.1", "bundled": true, + "dev": true, "optional": true }, "process-nextick-args": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "rc": { "version": "1.2.8", "bundled": true, + "dev": true, "optional": true, "requires": { "deep-extend": "^0.6.0", @@ -6467,6 +8171,7 @@ "minimist": { "version": "1.2.0", "bundled": true, + "dev": true, "optional": true } } @@ -6474,6 +8179,7 @@ "readable-stream": { "version": "2.3.6", "bundled": true, + "dev": true, "optional": true, "requires": { "core-util-is": "~1.0.0", @@ -6488,6 +8194,7 @@ "rimraf": { "version": "2.6.3", "bundled": true, + "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -6496,36 +8203,43 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, + "dev": true, "optional": true }, "safer-buffer": { "version": "2.1.2", "bundled": true, + "dev": true, "optional": true }, "sax": { "version": "1.2.4", "bundled": true, + "dev": true, "optional": true }, "semver": { "version": "5.7.0", "bundled": true, + "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", "bundled": true, + "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", "bundled": true, + "dev": true, "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", @@ -6536,6 +8250,7 @@ "string_decoder": { "version": "1.1.1", "bundled": true, + "dev": true, "optional": true, "requires": { "safe-buffer": "~5.1.0" @@ -6544,6 +8259,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" @@ -6552,11 +8268,13 @@ "strip-json-comments": { "version": "2.0.1", "bundled": true, + "dev": true, "optional": true }, "tar": { "version": "4.4.8", "bundled": true, + "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", @@ -6571,11 +8289,13 @@ "util-deprecate": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "wide-align": { "version": "1.1.3", "bundled": true, + "dev": true, "optional": true, "requires": { "string-width": "^1.0.2 || 2" @@ -6584,11 +8304,13 @@ "wrappy": { "version": "1.0.2", "bundled": true, + "dev": true, "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, + "dev": true, "optional": true } } @@ -6992,13 +8714,13 @@ "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, "get-installed-path": { "version": "4.0.8", @@ -7009,6 +8731,23 @@ "global-modules": "1.0.0" } }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + } + } + }, "get-own-enumerable-property-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", @@ -7041,7 +8780,8 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true }, "getpass": { "version": "0.1.7", @@ -7055,6 +8795,7 @@ "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -7068,6 +8809,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" @@ -7077,42 +8819,13 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - } - }, - "glob-watcher": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", - "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "object.defaults": "^1.1.0" - } - }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", @@ -7135,6 +8848,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", @@ -7145,6 +8859,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", @@ -7188,14 +8903,6 @@ } } }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "requires": { - "sparkles": "^1.0.0" - } - }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -7230,232 +8937,6 @@ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "gulp-cli": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", - "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.1.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.0.1", - "yargs": "^7.1.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "requires": { - "glogg": "^1.0.0" - } - }, "handle-thing": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", @@ -7548,6 +9029,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -7558,6 +9040,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -7567,6 +9050,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -7600,8 +9084,17 @@ "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "highlight.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", + "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==" + }, + "highlightjs-solidity": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-1.0.20.tgz", + "integrity": "sha512-Ixb87/4huazRJ7mriimL0DP2GvE5zgSk11VdMPGKMQCNwszDe8qK0PySySsuB88iXyDT/H2gdmvC2bgfrOi3qQ==" }, "hmac-drbg": { "version": "1.0.1", @@ -7622,6 +9115,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, "requires": { "parse-passwd": "^1.0.0" } @@ -7629,7 +9123,8 @@ "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true }, "hpack.js": { "version": "2.1.6", @@ -8105,6 +9600,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -8118,7 +9614,8 @@ "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "inquirer": { "version": "6.5.0", @@ -8171,7 +9668,8 @@ "interpret": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==" + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true }, "invariant": { "version": "2.2.4", @@ -8184,7 +9682,8 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true }, "ip": { "version": "1.1.5", @@ -8203,19 +9702,11 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8224,12 +9715,21 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -8239,6 +9739,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, "requires": { "binary-extensions": "^1.0.0" } @@ -8266,6 +9767,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8274,6 +9776,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -8289,6 +9792,7 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -8298,7 +9802,8 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true } } }, @@ -8315,7 +9820,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -8328,10 +9834,16 @@ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" }, + "is-generator-function": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz", + "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==" + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -8367,10 +9879,10 @@ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=" + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" }, "is-npm": { "version": "3.0.0", @@ -8382,6 +9894,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -8390,6 +9903,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -8473,14 +9987,6 @@ "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", @@ -8499,29 +10005,85 @@ "has-symbols": "^1.0.0" } }, + "is-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz", + "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + } + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=" - }, "is-what": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.2.4.tgz", @@ -8530,7 +10092,8 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true }, "is-wsl": { "version": "1.1.0", @@ -8552,7 +10115,8 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", @@ -8664,10 +10228,9 @@ "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" }, "js-sha3": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz", - "integrity": "sha1-uvDA6MVK1ZA0R9+Wreekobynmko=", - "dev": true + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" }, "js-tokens": { "version": "4.0.0", @@ -8725,7 +10288,8 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", @@ -8788,11 +10352,6 @@ "object.assign": "^4.1.0" } }, - "just-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", - "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=" - }, "keccak": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", @@ -8831,7 +10390,8 @@ "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "klaw": { "version": "1.3.1", @@ -8848,15 +10408,6 @@ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", @@ -8871,30 +10422,15 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "requires": { - "readable-stream": "^2.0.5" - } - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, "requires": { "invert-kv": "^1.0.0" } }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "requires": { - "flush-write-stream": "^1.0.2" - } - }, "level-codec": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", @@ -9141,21 +10677,6 @@ "ini": "^1.3.5" } }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -9492,6 +11013,36 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.partition": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.partition/-/lodash.partition-4.6.0.tgz", + "integrity": "sha1-o45GtzRp4EILDaEhLmbUFL42S6Q=" + }, + "lodash.sum": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/lodash.sum/-/lodash.sum-4.0.2.tgz", + "integrity": "sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s=" + }, "log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", @@ -9589,14 +11140,6 @@ } } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "requires": { - "kind-of": "^6.0.2" - } - }, "mamacro": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", @@ -9615,48 +11158,18 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, "requires": { "object-visit": "^1.0.0" } }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -9810,6 +11323,7 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -9879,6 +11393,11 @@ "dom-walk": "^0.1.0" } }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -9893,6 +11412,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -9941,6 +11461,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -9950,6 +11471,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -10094,6 +11616,31 @@ } } }, + "multibase": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", + "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", @@ -10110,10 +11657,48 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==" + "multicodec": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", + "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", + "requires": { + "varint": "^5.0.0" + } + }, + "multihashes": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "multibase": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } + } + } }, "mute-stream": { "version": "0.0.7", @@ -10135,6 +11720,7 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -10192,6 +11778,11 @@ "lower-case": "^1.1.1" } }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, "node-alias": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/node-alias/-/node-alias-1.0.4.tgz", @@ -10270,6 +11861,11 @@ "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", "dev": true }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -10366,6 +11962,11 @@ "integrity": "sha512-4a5FH4WLi+daH/CGD5o/JWRR8W5tlCkd3nrDSkxbOzscJTyTUITltvOJeQjg3HJ1YgEuNyiPhQbvbtRjkQBByQ==", "dev": true }, + "nofilter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz", + "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==" + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -10379,6 +11980,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", @@ -10389,21 +11991,14 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "normalize-url": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.3.0.tgz", "integrity": "sha512-0NLtR71o4k6GLP+mr6Ty34c5GA6CMoEsncKJxvQd8NzPxaHRJNnb5gZE8R1XF4CPIS7QPHLJ74IFszwtNVAHVQ==" }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "requires": { - "once": "^1.3.2" - } - }, "npm-bundled": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", @@ -10553,7 +12148,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "number-to-bn": { "version": "1.7.0", @@ -10585,6 +12181,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -10595,6 +12192,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -10603,12 +12201,18 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -10618,6 +12222,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, "requires": { "isobject": "^3.0.0" } @@ -10633,17 +12238,6 @@ "object-keys": "^1.0.11" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, "object.entries": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", @@ -10677,32 +12271,15 @@ "es-abstract": "^1.5.1" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, "requires": { "isobject": "^3.0.1" } }, - "object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, "object.values": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", @@ -10715,9 +12292,9 @@ } }, "oboe": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", - "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", "requires": { "http-https": "^1.0.0" } @@ -10784,25 +12361,6 @@ "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", "dev": true }, - "openzeppelin-solidity": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-2.3.0.tgz", - "integrity": "sha512-QYeiPLvB1oSbDt6lDQvvpx7k8ODczvE474hb2kLXZBPKMsxKT1WxTCHBYrCU7kS7hfAku4DcJ0jqOyL+jvjwQw==" - }, - "openzeppelin-test-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/openzeppelin-test-helpers/-/openzeppelin-test-helpers-0.4.2.tgz", - "integrity": "sha512-caXWi1LMeIwgUozuxfbOd77m6MP26+YOH/Klvm65jXBgtAqzLXyUZPy1ucCu466qsNmgcqKer/z1ekIAPud6Yg==", - "dev": true, - "requires": { - "ansi-colors": "^3.2.3", - "chai-bn": "^0.1.1", - "ethjs-abi": "^0.2.1", - "semver": "^5.6.0", - "truffle-contract": "^4.0.26", - "web3-utils": "^1.2.0" - } - }, "opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", @@ -10884,14 +12442,6 @@ } } }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "requires": { - "readable-stream": "^2.0.1" - } - }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -11022,7 +12572,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -11070,8 +12619,7 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "package-json": { "version": "6.5.0", @@ -11131,8 +12679,7 @@ "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" }, "parallel-transform": { "version": "1.1.0", @@ -11182,16 +12729,6 @@ "integrity": "sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA==", "dev": true }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, "parse-headers": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", @@ -11205,19 +12742,29 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { "error-ex": "^1.2.0" } }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" - }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "requires": { + "parse5": "^6.0.1" + } }, "parseurl": { "version": "1.3.3", @@ -11227,7 +12774,8 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true }, "path-browserify": { "version": "0.0.1", @@ -11238,7 +12786,8 @@ "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true }, "path-exists": { "version": "3.0.0", @@ -11249,7 +12798,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -11268,19 +12818,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -11306,8 +12843,7 @@ "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "pbkdf2": { "version": "3.0.17", @@ -11409,7 +12945,8 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true }, "postcss-value-parser": { "version": "3.3.1", @@ -11516,11 +13053,6 @@ "utila": "~0.4" } }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -11665,6 +13197,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", @@ -11675,6 +13208,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11945,6 +13479,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -11975,6 +13510,7 @@ "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, "requires": { "resolve": "^1.1.6" } @@ -12022,6 +13558,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -12146,29 +13683,11 @@ } } }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true }, "renderkid": { "version": "2.0.3", @@ -12203,27 +13722,14 @@ "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true }, "req-cwd": { "version": "1.0.1", @@ -12314,7 +13820,8 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-from-string": { "version": "2.0.2", @@ -12325,7 +13832,8 @@ "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true }, "requireg": { "version": "0.2.2", @@ -12384,6 +13892,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" @@ -12395,18 +13904,11 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "requires": { - "value-or-function": "^3.0.0" - } - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true }, "responselike": { "version": "1.0.2", @@ -12429,7 +13931,8 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true }, "retry": { "version": "0.10.1", @@ -12479,7 +13982,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.3.tgz", "integrity": "sha512-l6YVrI7+d2vpW6D6rS05x2Xrmq8oW7v3pieZOJKBEdjuTF4Kz/iwk55Zyh1Zaz+KOB2kC8+2jZlp2u9L4tTzCQ==", - "dev": true, "requires": { "bn.js": "^4.11.1", "safe-buffer": "^5.1.1" @@ -12488,8 +13990,7 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" } } }, @@ -12573,6 +14074,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, "requires": { "ret": "~0.1.10" } @@ -12611,6 +14113,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "dev": true, "requires": { "nan": "^2.0.8" } @@ -12618,22 +14121,13 @@ "scrypt-js": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true - }, - "scrypt.js": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.3.0.tgz", - "integrity": "sha512-42LTc1nyFsyv/o0gcHtDztrn+aqpkaCNt5Qh7ATBZfhEZU7IC/0oT/qbBH+uRNoAPvs2fwiOId68FDEoSRA8/A==", - "requires": { - "scrypt": "^6.0.2", - "scryptsy": "^1.2.1" - } + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" }, "scryptsy": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "dev": true, "requires": { "pbkdf2": "^3.0.3" } @@ -12736,14 +14230,6 @@ "semver": "^5.0.3" } }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "requires": { - "sver-compat": "^1.5.0" - } - }, "semver-utils": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/semver-utils/-/semver-utils-1.1.4.tgz", @@ -12850,12 +14336,14 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -12867,6 +14355,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13016,6 +14505,7 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -13031,6 +14521,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13039,6 +14530,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -13049,6 +14541,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -13059,6 +14552,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -13067,6 +14561,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13075,6 +14570,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -13083,6 +14579,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -13095,6 +14592,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -13103,6 +14601,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -13637,6 +15136,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", @@ -13666,12 +15166,8 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==" + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true }, "spawn-please": { "version": "0.3.0", @@ -13683,6 +15179,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -13691,12 +15188,14 @@ "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -13705,7 +15204,8 @@ "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true }, "spdy": { "version": "4.0.1", @@ -13783,6 +15283,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -13822,15 +15323,11 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -13840,6 +15337,7 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -13877,11 +15375,6 @@ "stream-shift": "^1.0.0" } }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" - }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", @@ -13898,7 +15391,8 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true }, "strict-uri-encode": { "version": "1.1.0", @@ -13931,6 +15425,24 @@ "function-bind": "^1.1.1" } }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -13954,7 +15466,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -13993,6 +15504,11 @@ "is-hex-prefixed": "1.0.0" } }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=" + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -14038,6 +15554,11 @@ "resolved": "https://registry.npmjs.org/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz", "integrity": "sha512-nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==" }, + "super-split": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/super-split/-/super-split-1.1.0.tgz", + "integrity": "sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ==" + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -14046,15 +15567,6 @@ "has-flag": "^3.0.0" } }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, "svg-parser": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.2.tgz", @@ -14392,31 +15904,18 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, "thunky": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", "dev": true }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=" - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -14450,15 +15949,6 @@ "os-tmpdir": "~1.0.2" } }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -14479,6 +15969,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -14487,6 +15978,7 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -14502,6 +15994,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -14513,19 +16006,12 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "requires": { - "through2": "^2.0.3" - } - }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", @@ -14952,10 +16438,381 @@ "dev": true }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", - "dev": true, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", + "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "truffle-hdwallet-provider": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.17.tgz", + "integrity": "sha512-s6DvSP83jiIAc6TUcpr7Uqnja1+sLGJ8og3X7n41vfyC4OCaKmBtXL5HOHf+SsU3iblOvnbFDgmN6Y1VBL/fsg==", + "requires": { + "any-promise": "^1.3.0", + "bindings": "^1.3.1", + "web3": "1.2.1", + "websocket": "^1.0.28" + }, + "dependencies": { + "@types/node": { + "version": "10.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz", + "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + } + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "oboe": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz", + "integrity": "sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY=", + "requires": { + "http-https": "^1.0.0" + } + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + }, + "scryptsy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-2.1.0.tgz", + "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" + }, + "web3": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", + "integrity": "sha512-nNMzeCK0agb5i/oTWNdQ1aGtwYfXzHottFP2Dz0oGIzavPMGSKyVlr8ibVb1yK5sJBjrWVnTdGaOC2zKDFuFRw==", + "requires": { + "web3-bzz": "1.2.1", + "web3-core": "1.2.1", + "web3-eth": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-shh": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-bzz": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", + "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", + "requires": { + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + } + }, + "web3-core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", + "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", + "requires": { + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-requestmanager": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-method": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", + "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-core-promievent": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", + "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", + "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "web3-providers-http": "1.2.1", + "web3-providers-ipc": "1.2.1", + "web3-providers-ws": "1.2.1" + } + }, + "web3-core-subscriptions": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", + "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-eth": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", + "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-accounts": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-eth-ens": "1.2.1", + "web3-eth-iban": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-abi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", + "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-accounts": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", + "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scryptsy": "2.1.0", + "semver": "6.2.0", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "web3-eth-contract": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", + "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-ens": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", + "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-iban": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", + "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.1" + } + }, + "web3-eth-personal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", + "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "requires": { + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-net": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", + "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-providers-http": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", + "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "requires": { + "web3-core-helpers": "1.2.1", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", + "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + } + }, + "web3-providers-ws": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", + "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + }, + "dependencies": { + "websocket": { + "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", + "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } + } + } + }, + "web3-shh": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", + "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-net": "1.2.1" + } + }, + "web3-utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", + "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", "requires": { "bn.js": "4.11.8", "eth-lib": "0.2.7", @@ -14968,31 +16825,6 @@ } } }, - "truffle-hdwallet-provider": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.15.tgz", - "integrity": "sha512-MAZQ5pcu4jW6JcAcO+qEig2e5iETyjIOingOnCIge15aGQdz8UZ2hjc8FPCnzKiQTPKu88YD5qM29fPQceBY5g==", - "requires": { - "any-promise": "^1.3.0", - "bindings": "^1.3.1", - "web3": "^1.2.0", - "websocket": "^1.0.28" - }, - "dependencies": { - "websocket": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.29.tgz", - "integrity": "sha512-WhU8jKXC8sTh6ocLSqpZRlOKMNYGwUvjA5+XcIgIk/G3JCaDfkZUr0zA19sVSxJ0TEvm0i5IBzr54RZC4vzW7g==", - "requires": { - "debug": "^2.2.0", - "gulp": "^4.0.2", - "nan": "^2.11.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } - } - } - }, "truffle-interface-adapter": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/truffle-interface-adapter/-/truffle-interface-adapter-0.2.1.tgz", @@ -15150,8 +16982,7 @@ "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" }, "type-fest": { "version": "0.6.0", @@ -15171,7 +17002,8 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", @@ -15224,37 +17056,11 @@ "through": "^2.3.8" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, "underscore": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==" }, - "undertaker": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", - "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -15283,6 +17089,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -15308,15 +17115,6 @@ "imurmurhash": "^0.1.4" } }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", @@ -15345,6 +17143,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -15354,6 +17153,7 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -15364,6 +17164,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, "requires": { "isarray": "1.0.0" } @@ -15373,14 +17174,16 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true } } }, "upath": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", - "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true }, "update-notifier": { "version": "3.0.1", @@ -15419,7 +17222,8 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true }, "url": { "version": "0.11.0", @@ -15470,7 +17274,16 @@ "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "utf-8-validate": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", + "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", + "requires": { + "node-gyp-build": "^4.2.0" + } }, "utf8": { "version": "3.0.0", @@ -15530,18 +17343,11 @@ "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", "dev": true }, - "v8flags": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", - "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -15556,10 +17362,10 @@ "builtins": "^1.0.3" } }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=" + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, "vary": { "version": "1.1.2", @@ -15576,74 +17382,6 @@ "extsprintf": "^1.2.0" } }, - "vinyl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", - "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - } - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, "vm-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", @@ -15680,23 +17418,28 @@ } }, "web3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.0.tgz", - "integrity": "sha512-iFrVAexsopX97x0ofBU/7HrCxzovf624qBkjBUeHZDf/G3Sb4tMQtjkCRc5lgVvzureq5SCqDiFDcqnw7eJ0bA==", - "requires": { - "web3-bzz": "1.2.0", - "web3-core": "1.2.0", - "web3-eth": "1.2.0", - "web3-eth-personal": "1.2.0", - "web3-net": "1.2.0", - "web3-shh": "1.2.0", - "web3-utils": "1.2.0" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.2.tgz", + "integrity": "sha512-zZA8mymny6G+/eyISbaQ9fMQ6SsZOObX1ZUgqpnttNluuwc+oLjModjh+XiIC1OqU8WSwoq5HkKatli7sILbNA==", + "requires": { + "web3-bzz": "1.3.2", + "web3-core": "1.3.2", + "web3-eth": "1.3.2", + "web3-eth-personal": "1.3.2", + "web3-net": "1.3.2", + "web3-shh": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15708,9 +17451,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -15718,15 +17461,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -15734,30 +17478,120 @@ } }, "web3-bzz": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.0.tgz", - "integrity": "sha512-QEIdvguSEpqBK9b815nzx4yvpfKv/SAvaFeCMjQ0vjIVqFhAwBHDxd+f+X3nWGVRGVeOTP7864tau26CPBtQ8Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.2.tgz", + "integrity": "sha512-rciwsXK1kTTjx50lcCKOFDSV4EOEHkhvRTIFun+dvyQiW3pcbqap1ENzxnlGxlG6M4O+SPOxxWILh0rMEi4tDA==", "requires": { + "@types/node": "^12.12.6", "got": "9.6.0", - "swarm-js": "0.1.39", + "swarm-js": "^0.1.40", "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "swarm-js": { + "version": "0.1.40", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", + "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", + "requires": { + "bluebird": "^3.5.0", + "buffer": "^5.0.5", + "eth-lib": "^0.1.26", + "fs-extra": "^4.0.2", + "got": "^7.1.0", + "mime-types": "^2.1.16", + "mkdirp-promise": "^5.0.1", + "mock-fs": "^4.1.0", + "setimmediate": "^1.0.5", + "tar": "^4.0.2", + "xhr-request": "^1.0.1" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + } + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "^1.0.1" + } + } } }, "web3-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.0.tgz", - "integrity": "sha512-Vy+fargzx94COdihE79zIM5lb/XAl/LJlgGdmz2a6QhgGZrSL8K6DKKNS+OuORAcLJN2PWNMc4IdfknkOw1PhQ==", - "requires": { - "web3-core-helpers": "1.2.0", - "web3-core-method": "1.2.0", - "web3-core-requestmanager": "1.2.0", - "web3-utils": "1.2.0" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.2.tgz", + "integrity": "sha512-nWObgrGdTRqtX3cCsTV0gO110Cq5UFb0c/G4s7CdG8tYKSjRdiMfm3YRBGCcyySGWbxMvnyMROt9xrg1Vy4f0g==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.3.2", + "web3-core-method": "1.3.2", + "web3-core-requestmanager": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15769,9 +17603,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -15779,15 +17613,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -15795,19 +17630,24 @@ } }, "web3-core-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.0.tgz", - "integrity": "sha512-KLCCP2FS1cMz23Y9l3ZaEDzaUky+GpsNavl4Hn1xX8lNaKcfgGEF+DgtAY/TfPQYAxLjLrSbIFUDzo9H/W1WAQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.2.tgz", + "integrity": "sha512-puZze35eApfZVR0PPTMMjwmJ0uFAxXK8KDZ6xwO6Yp+ktSN5U3ruehYDLbJ8HuxGFXcdHCXxrodVKW3FCviT+Q==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.0", - "web3-utils": "1.2.0" + "web3-eth-iban": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15819,9 +17659,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -15829,15 +17669,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -15845,21 +17686,27 @@ } }, "web3-core-method": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.0.tgz", - "integrity": "sha512-Iff5rCL+sgHe6zZVZijp818aRixKQf3ZAyQsT6ewER1r9yqXsH89DJtX33Xw8xiaYSwUFcpNs2j+Kluhv/eVAw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.2.tgz", + "integrity": "sha512-cjNhNxEIrGd2E6lCNWvYSd5s282dgCIt5hjchrae1T88x84WF5mxLjqMDDFF3z1LvZBs1rAc11m0JBu/QtMlLQ==", "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", "underscore": "1.9.1", - "web3-core-helpers": "1.2.0", - "web3-core-promievent": "1.2.0", - "web3-core-subscriptions": "1.2.0", - "web3-utils": "1.2.0" + "web3-core-helpers": "1.3.2", + "web3-core-promievent": "1.3.2", + "web3-core-subscriptions": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15871,25 +17718,39 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "web3-core-promievent": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.2.tgz", + "integrity": "sha512-fR7jUAFtvqAwmWdWMlDDeYSqR/6oKAUSmnhHeJcvLYGPmKUTHLNxEbupZVOqI1F1TJmLq99t5Nq45HBJqmAU8A==", + "requires": { + "eventemitter3": "4.0.4" + } + }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -15900,57 +17761,86 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.0.tgz", "integrity": "sha512-9THNYsZka91AX4LZGZvka5hio9+QlOY22hNgCiagmCmYytyKk3cXftL6CWefnNF7XgW8sy/ew5lzWLVsQW61Lw==", + "dev": true, "requires": { "any-promise": "1.3.0", "eventemitter3": "3.1.2" } }, "web3-core-requestmanager": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.0.tgz", - "integrity": "sha512-hPe1jyESodXAiE7qJglu7ySo4GINCn5CgG+9G1ATLQbriZsir83QMSeKQekv/hckKFIf4SvZJRPEBhtAle+Dhw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.2.tgz", + "integrity": "sha512-VYZbWA98vYXxnlP5xEpYo03CTr+tjUWqRT0VGsEUAlH617Wank3TPyEo8ASU5O41t7Sh1p/mWY55QzXAF5lLaA==", "requires": { "underscore": "1.9.1", - "web3-core-helpers": "1.2.0", - "web3-providers-http": "1.2.0", - "web3-providers-ipc": "1.2.0", - "web3-providers-ws": "1.2.0" + "util": "^0.12.0", + "web3-core-helpers": "1.3.2", + "web3-providers-http": "1.3.2", + "web3-providers-ipc": "1.3.2", + "web3-providers-ws": "1.3.2" + }, + "dependencies": { + "util": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", + "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + } } }, "web3-core-subscriptions": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.0.tgz", - "integrity": "sha512-DHipGH8It5E4HxxvymhkudcYhBVgGx6MwGWobIVKFgp6JRxtuvAbqwrMbuD/+78J6yXOa4y9zVXBk12dm2NXGg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.2.tgz", + "integrity": "sha512-gDLaDYCpt6zPU4cmQeJKHj7zbsv/dFoNSrj2wQzlBQetxGxyqmd4akf+PwqIE1zRybld/EZaWPEdOF65sA+2Kg==", "requires": { - "eventemitter3": "3.1.2", + "eventemitter3": "4.0.4", "underscore": "1.9.1", - "web3-core-helpers": "1.2.0" + "web3-core-helpers": "1.3.2" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } } }, "web3-eth": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.0.tgz", - "integrity": "sha512-GP1+hHS/IVW1tAOIDS44PxCpvSl9PBU/KAB40WgP27UMvSy43LjHxGlP6hQQOdIfmBLBTvGvn2n+Z5kW2gzAzg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.2.tgz", + "integrity": "sha512-zGhPsDB9Jn+kx3l8ddZ86q4btRBivoLOj+EvUqxTAg0ZQ9g2/FPnsnNXlaYEZx/fjwHXcOB+h/biyNlylL+HnQ==", "requires": { "underscore": "1.9.1", - "web3-core": "1.2.0", - "web3-core-helpers": "1.2.0", - "web3-core-method": "1.2.0", - "web3-core-subscriptions": "1.2.0", - "web3-eth-abi": "1.2.0", - "web3-eth-accounts": "1.2.0", - "web3-eth-contract": "1.2.0", - "web3-eth-ens": "1.2.0", - "web3-eth-iban": "1.2.0", - "web3-eth-personal": "1.2.0", - "web3-net": "1.2.0", - "web3-utils": "1.2.0" + "web3-core": "1.3.2", + "web3-core-helpers": "1.3.2", + "web3-core-method": "1.3.2", + "web3-core-subscriptions": "1.3.2", + "web3-eth-abi": "1.3.2", + "web3-eth-accounts": "1.3.2", + "web3-eth-contract": "1.3.2", + "web3-eth-ens": "1.3.2", + "web3-eth-iban": "1.3.2", + "web3-eth-personal": "1.3.2", + "web3-net": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -15962,25 +17852,36 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "web3-eth-abi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.2.tgz", + "integrity": "sha512-9W+cvvK2Ek47rn4y4Xv76coUsZoqJL6X/WYLmwLuHS1arPFcpHzui0/KHgCb9g7OuDpd1BQNk28nm5Hr2y+fsw==", + "requires": { + "@ethersproject/abi": "5.0.7", + "underscore": "1.9.1", + "web3-utils": "1.3.2" + } + }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -15991,6 +17892,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.0.tgz", "integrity": "sha512-FDuPq/tFeMg/D/f7cNSmvVYkMYb1z379gUUzSL8ZFtZrdHPkezq+lq/TmWmbCOMLYNXlhGJBzjGdLXRS4Upprg==", + "dev": true, "requires": { "ethers": "4.0.0-beta.3", "underscore": "1.9.1", @@ -16000,12 +17902,14 @@ "@types/node": { "version": "10.14.13", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz", - "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==" + "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==", + "dev": true }, "eth-lib": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -16015,12 +17919,14 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true }, "elliptic": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "dev": true, "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16037,6 +17943,7 @@ "version": "4.0.0-beta.3", "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "dev": true, "requires": { "@types/node": "^10.3.2", "aes-js": "3.0.0", @@ -16053,24 +17960,28 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true } } }, "js-sha3": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true }, "scrypt-js": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", + "dev": true }, "web3-utils": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "dev": true, "requires": { "bn.js": "4.11.8", "eth-lib": "0.2.7", @@ -16084,33 +17995,35 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true } } } } }, "web3-eth-accounts": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.0.tgz", - "integrity": "sha512-d/fUAL3F6HqstvEiBnZ1RwZ77/DytgF9d6A3mWVvPOUk2Pqi77PM0adRvsKvIWUaQ/k6OoCk/oXtbzaO7CyGpg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.2.tgz", + "integrity": "sha512-UIVg75e6bQYw54oOGlSV9OSkebIP00EPmpA59Jhj0uczJwM0BJkAxGAX9zfCOrKh98DcETLla9TEQjIM1mvlMg==", "requires": { - "any-promise": "1.3.0", "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scrypt.js": "^0.3.0", + "eth-lib": "0.2.8", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-js": "^3.0.1", "underscore": "1.9.1", "uuid": "3.3.2", - "web3-core": "1.2.0", - "web3-core-helpers": "1.2.0", - "web3-core-method": "1.2.0", - "web3-utils": "1.2.0" + "web3-core": "1.3.2", + "web3-core-helpers": "1.3.2", + "web3-core-method": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16122,55 +18035,102 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "ethereumjs-common": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" + }, + "ethereumjs-tx": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz", + "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==", + "requires": { + "ethereumjs-common": "^1.5.0", + "ethereumjs-util": "^6.0.0" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + } } } } }, "web3-eth-contract": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.0.tgz", - "integrity": "sha512-hfjozNbfsoMeR3QklfkwU0Mqcw6YRD4y1Cb1ghGWNhFy2+/sbvKcQNPPJDKFTde22PRzGQBWyh/nb422Sux4bQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.2.tgz", + "integrity": "sha512-RQ0bVtFPsm2/ZyPkAjDFa2JvAbuCGsnj7QJiilPYV8ICSG18u+8KDC2n6h0K5eweAJp25ma6nF/fugimPGnQLw==", "requires": { + "@types/bn.js": "^4.11.5", "underscore": "1.9.1", - "web3-core": "1.2.0", - "web3-core-helpers": "1.2.0", - "web3-core-method": "1.2.0", - "web3-core-promievent": "1.2.0", - "web3-core-subscriptions": "1.2.0", - "web3-eth-abi": "1.2.0", - "web3-utils": "1.2.0" + "web3-core": "1.3.2", + "web3-core-helpers": "1.3.2", + "web3-core-method": "1.3.2", + "web3-core-promievent": "1.3.2", + "web3-core-subscriptions": "1.3.2", + "web3-eth-abi": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16182,25 +18142,49 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "web3-core-promievent": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.2.tgz", + "integrity": "sha512-fR7jUAFtvqAwmWdWMlDDeYSqR/6oKAUSmnhHeJcvLYGPmKUTHLNxEbupZVOqI1F1TJmLq99t5Nq45HBJqmAU8A==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-eth-abi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.2.tgz", + "integrity": "sha512-9W+cvvK2Ek47rn4y4Xv76coUsZoqJL6X/WYLmwLuHS1arPFcpHzui0/KHgCb9g7OuDpd1BQNk28nm5Hr2y+fsw==", + "requires": { + "@ethersproject/abi": "5.0.7", + "underscore": "1.9.1", + "web3-utils": "1.3.2" + } + }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -16208,24 +18192,30 @@ } }, "web3-eth-ens": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.0.tgz", - "integrity": "sha512-kE6uHMLwH9dv+MZSKT7BcKXcQ6CcLP5m5mM44s2zg2e9Rl20F3J6R3Ik6sLc/w2ywdCwTe/Z22yEstHXQwu5ig==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.2.tgz", + "integrity": "sha512-WSg21o1qj5FY21ZHQ0YmMK7NLtQ+UIMqPvIMSl5VKZO7sDnyRTNiUFrJtsv9ck4WVvBOE8ETqbbm9GOlHxuzuA==", "requires": { + "content-hash": "^2.5.2", "eth-ens-namehash": "2.0.8", "underscore": "1.9.1", - "web3-core": "1.2.0", - "web3-core-helpers": "1.2.0", - "web3-core-promievent": "1.2.0", - "web3-eth-abi": "1.2.0", - "web3-eth-contract": "1.2.0", - "web3-utils": "1.2.0" + "web3-core": "1.3.2", + "web3-core-helpers": "1.3.2", + "web3-core-promievent": "1.3.2", + "web3-eth-abi": "1.3.2", + "web3-eth-contract": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16237,25 +18227,49 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "web3-core-promievent": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.2.tgz", + "integrity": "sha512-fR7jUAFtvqAwmWdWMlDDeYSqR/6oKAUSmnhHeJcvLYGPmKUTHLNxEbupZVOqI1F1TJmLq99t5Nq45HBJqmAU8A==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-eth-abi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.2.tgz", + "integrity": "sha512-9W+cvvK2Ek47rn4y4Xv76coUsZoqJL6X/WYLmwLuHS1arPFcpHzui0/KHgCb9g7OuDpd1BQNk28nm5Hr2y+fsw==", + "requires": { + "@ethersproject/abi": "5.0.7", + "underscore": "1.9.1", + "web3-utils": "1.3.2" + } + }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -16263,18 +18277,23 @@ } }, "web3-eth-iban": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.0.tgz", - "integrity": "sha512-6DzTx/cvIgEvxadhJjLGpsuDUARA4RKskNOuwWYUsUODcPb50rsfMmRkHhGtLss/sNXVE5gNjbT9rX3TDqy2tg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.2.tgz", + "integrity": "sha512-w00aAK7lPlKKhBtC72hJGmCnuH/Uf87HoH77+1XH4wrLCxvry7ChZoQ1g+88Qu8bNnSMdDcSDxLVsvHGwZJp3Q==", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.0" + "bn.js": "^4.11.9", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16286,9 +18305,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -16296,15 +18315,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -16312,21 +18332,32 @@ } }, "web3-eth-personal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.0.tgz", - "integrity": "sha512-8QdcaT6dbdiMC8zEqvDuij8XeI34r2GGdQYGvYBP2UgCm15EZBHgewxO30A+O+j2oIW1/Hu60zP5upnhCuA1Dw==", - "requires": { - "web3-core": "1.2.0", - "web3-core-helpers": "1.2.0", - "web3-core-method": "1.2.0", - "web3-net": "1.2.0", - "web3-utils": "1.2.0" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.2.tgz", + "integrity": "sha512-gpMUEwho+RkR6EunHEsxm66HarXfGav9meC2D4xOkedxBOniog/TyGG8ntwN0AKRqXcX9Cv8NzndMfGcMzCXNw==", + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.3.2", + "web3-core-helpers": "1.3.2", + "web3-core-method": "1.3.2", + "web3-net": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "@types/node": { + "version": "12.19.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", + "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" + }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16338,9 +18369,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -16348,15 +18379,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -16364,19 +18396,24 @@ } }, "web3-net": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.0.tgz", - "integrity": "sha512-7iD8C6vvx8APXPMmlpPLGWjn4bsXHzd3BTdFzKjkoYjiiVFJdVAbY3j1BwN/6tVQu8Ay7sDpV2EdTNub7GKbyw==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.2.tgz", + "integrity": "sha512-3aYio5ZJKy+mrw3S9G1Qyxk0k6NYM3gFYfRuEVoV99g2R2YpVLm/uU4j8XgwA0uayWU67bddVzw74n5w7sKkpw==", "requires": { - "web3-core": "1.2.0", - "web3-core-method": "1.2.0", - "web3-utils": "1.2.0" + "web3-core": "1.3.2", + "web3-core-method": "1.3.2", + "web3-utils": "1.3.2" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16388,9 +18425,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -16398,15 +18435,16 @@ } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" } @@ -16464,65 +18502,77 @@ } }, "web3-providers-http": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.0.tgz", - "integrity": "sha512-UrUn6JSz7NVCZ+0nZZtC4cmbl5JIi57w1flL1jN8jgkfdWDdErNvTkSwCt/QYdTQscMaUtWXDDOSAsVO6YC64g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.2.tgz", + "integrity": "sha512-r0e92BqC4BswzZeAQYTp0+kMPTc4DIhwC7+TNFVD1LnzWeiHUZk0nui7JF4kKllMOJSjvJRQvoLS/2DBtb3Acw==", "requires": { - "web3-core-helpers": "1.2.0", + "web3-core-helpers": "1.3.2", "xhr2-cookies": "1.1.0" } }, "web3-providers-ipc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.0.tgz", - "integrity": "sha512-T2OSbiqu7+dahbGG5YFEQM5+FXdLVvaTCKmHXaQpw8IuL5hw7HELtyFOtHVudgDRyw0tJKxIfAiX/v2F1IL1fQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.2.tgz", + "integrity": "sha512-MjTW/EEFAWbiVPXYk5ZLyJCvgiaGhTbQY1UNvbGuPnAI5OYKW6BsZYi3J9nx8/drwO7dszJueRbjF9TnzJDKHw==", "requires": { - "oboe": "2.1.4", + "oboe": "2.1.5", "underscore": "1.9.1", - "web3-core-helpers": "1.2.0" + "web3-core-helpers": "1.3.2" } }, "web3-providers-ws": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.0.tgz", - "integrity": "sha512-rnwGcCe6cev5A6eG5UBCQqPmkJVZMCrK+HN1AvUCco0OHD/0asGc9LuLbtkQIyznA6Lzetq/OOcaTOM4KeT11g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.2.tgz", + "integrity": "sha512-I55BFSc6Q5BoB9q99IxZaPlZQQV3e/lHO3oj9GvSi+E+sTYIb6ccGawkKRInWh1i//R6zN6FptCCyOfAPT5B+g==", "requires": { + "eventemitter3": "4.0.4", "underscore": "1.9.1", - "web3-core-helpers": "1.2.0", - "websocket": "github:frozeman/WebSocket-Node#browserifyCompatible" + "web3-core-helpers": "1.3.2", + "websocket": "^1.0.32" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + } } }, "web3-shh": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.0.tgz", - "integrity": "sha512-VFjS8kvsQBodudFmIoVJWvDNZosONJZZnhvktngD3POu5dwbJmSCl6lzbLJ2C5XjR15dF+JvSstAkWbM+2sdPg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.2.tgz", + "integrity": "sha512-aEgL6ryUxvdxaAl0Uz0QyBvKS4a88wsRWmacGtI8RFR3eUEzTbAb8jZ7sd5UuUxqP6Q/Wmt6/+bc4FqxSaF5xA==", "requires": { - "web3-core": "1.2.0", - "web3-core-method": "1.2.0", - "web3-core-subscriptions": "1.2.0", - "web3-net": "1.2.0" + "web3-core": "1.3.2", + "web3-core-method": "1.3.2", + "web3-core-subscriptions": "1.3.2", + "web3-net": "1.3.2" } }, "web3-utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.0.tgz", - "integrity": "sha512-tI1low8ICoaWU2c53cikH0rsksKuIskI2nycH5E5sEXxxl9/BOD3CeDDBFbxgNPQ+bpDevbR7gXNEDB7Ud4G9g==", - "dev": true, + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.2.tgz", + "integrity": "sha512-00jr14EH/dYLjHqkt7l5VAj27IhRsn+I4b2OHvGXGG+8PT/HQTf3IxoYknHRE09kh+TmrTAT3mPurX/Q6+RVng==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randomhex": "0.1.5", + "randombytes": "^2.1.0", "underscore": "1.9.1", "utf8": "3.0.0" }, "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", - "dev": true, + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", @@ -16534,10 +18584,9 @@ } }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -17032,12 +19081,15 @@ } }, "websocket": { - "version": "github:frozeman/WebSocket-Node#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "github:frozeman/WebSocket-Node#browserifyCompatible", + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.33.tgz", + "integrity": "sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA==", "requires": { + "bufferutil": "^4.0.1", "debug": "^2.2.0", - "nan": "^2.3.3", - "typedarray-to-buffer": "^3.1.2", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", "yaeti": "^0.0.6" } }, @@ -17067,6 +19119,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -17077,6 +19130,82 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, + "which-typed-array": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", + "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.1", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + } + } + }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", diff --git a/package.json b/package.json index be331ac..8d9b316 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "html-webpack-plugin": "^3.2.0", "husky": "^3.0.0", "lint-staged": "^9.2.0", - "openzeppelin-test-helpers": "^0.4.2", "prettier": "^1.18.2", "prettier-plugin-solidity": "^1.0.0-alpha.27", "solhint": "^2.1.2", @@ -57,15 +56,16 @@ "dependencies": { "@babel/plugin-proposal-class-properties": "^7.5.5", "@babel/polyfill": "^7.4.4", - "bignumber.js": "^9.0.0", - "openzeppelin-solidity": "^2.3.0", + "@openzeppelin/contracts": "^3.3.0", + "@openzeppelin/test-helpers": "^0.5.10", + "bignumber.js": "^9.0.1", + "prop-types": "^15.7.2", "react": "^16.8.6", "react-dom": "^16.8.6", - "prop-types": "^15.7.2", "rimble-ui": "^0.9.6", "styled-components": "^4.3.2", - "truffle-hdwallet-provider": "^1.0.15", - "web3": "^1.2.0" + "truffle-hdwallet-provider": "^1.0.17", + "web3": "^1.3.2" }, "husky": { "hooks": { diff --git a/test/core/ContestBracketRegistry.test.js b/test/core/ContestBracketRegistry.test.js index 94791da..d027100 100644 --- a/test/core/ContestBracketRegistry.test.js +++ b/test/core/ContestBracketRegistry.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/core/ContestTeam.test.js b/test/core/ContestTeam.test.js index 90cd8f0..e9674a6 100644 --- a/test/core/ContestTeam.test.js +++ b/test/core/ContestTeam.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/core/ContestTeamRegistry.test.js b/test/core/ContestTeamRegistry.test.js index ae4ad04..d3872b2 100644 --- a/test/core/ContestTeamRegistry.test.js +++ b/test/core/ContestTeamRegistry.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/core/Hackathon.test.js b/test/core/Hackathon.test.js index f501a10..c724e87 100644 --- a/test/core/Hackathon.test.js +++ b/test/core/Hackathon.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/factory/ContestTeamFactory.test.js b/test/factory/ContestTeamFactory.test.js index 1c178b5..13c24cf 100644 --- a/test/factory/ContestTeamFactory.test.js +++ b/test/factory/ContestTeamFactory.test.js @@ -1,4 +1,4 @@ -const {expectRevert} = require("openzeppelin-test-helpers"); +const {expectRevert} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/factory/HackathonFactory.test.js b/test/factory/HackathonFactory.test.js index 434f4ef..72b2924 100644 --- a/test/factory/HackathonFactory.test.js +++ b/test/factory/HackathonFactory.test.js @@ -1,4 +1,4 @@ -const {expectRevert} = require("openzeppelin-test-helpers"); +const {expectRevert} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/lifecycle/Pausable.test.js b/test/lifecycle/Pausable.test.js index 104d4c9..4ac8bcd 100644 --- a/test/lifecycle/Pausable.test.js +++ b/test/lifecycle/Pausable.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/roles/ContestRoleManager.test.js b/test/roles/ContestRoleManager.test.js index 772472b..1391fcc 100644 --- a/test/roles/ContestRoleManager.test.js +++ b/test/roles/ContestRoleManager.test.js @@ -1,4 +1,4 @@ -const {expectRevert, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, expectEvent} = require("@openzeppelin/test-helpers"); const {expect} = require("chai"); const BigNumber = require("bignumber.js"); diff --git a/test/roles/Role.behavior.js b/test/roles/Role.behavior.js index 851cd0f..74d94fb 100644 --- a/test/roles/Role.behavior.js +++ b/test/roles/Role.behavior.js @@ -23,7 +23,7 @@ // Source https://github.com/OpenZeppelin/openzeppelin-solidity/blob/master/test/behaviors/access/roles/PublicRole.behavior.js -const {expectRevert, constants, expectEvent} = require("openzeppelin-test-helpers"); +const {expectRevert, constants, expectEvent} = require("@openzeppelin/test-helpers"); const {ZERO_ADDRESS} = constants; const {expect} = require("chai"); diff --git a/truffle-config.js b/truffle-config.js index 6d7aa1d..04e701b 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -122,7 +122,7 @@ module.exports = { // Configure your compilers compilers: { solc: { - // version: "0.5.1", // Fetch exact version from solc-bin (default: truffle's version) + version: "0.7.6", // Fetch exact version from solc-bin (default: truffle's version) // docker: true, // Use "0.5.1" you've installed locally with docker (default: false) settings: { // See the solidity docs for advice about optimization and evmVersion